Office: Loop, der jeweils 1 Spalte "weiterspringt"

Helfe beim Thema Loop, der jeweils 1 Spalte "weiterspringt" in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich bin neu hier im Excel-Forum (war früher ab und an bei Access unterwegs) und möchte daher erstmal alle grüßen! *winken Ich hab ein... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von moehre_koeln, 5. November 2006.

  1. Loop, der jeweils 1 Spalte "weiterspringt"


    Hallo zusammen,

    ich bin neu hier im Excel-Forum (war früher ab und an bei Access unterwegs) und möchte daher erstmal alle grüßen! *winken

    Ich hab ein Problem, bei dem ich mit meinen "normalen" Excel-Kenntnissen nicht weiterkomme:

    Ich habe eine Tabelle, in der für jeden Arbeitstag des Jahres ein Feld befüllt werden soll - also ca. 250 Spalten. Jetzt sollen folgende Operationen abgearbeitet werden:

    1.) In die Zelle hinter der letzten "Tagesspalte" soll das Wort "ENDE" eingetragen werden
    2) Dann soll in alle Spalten eine bestimmte (gleiche) Formel eingetragen werden
    3) Dann soll in der Zelle des ersten Arbeitstages das Formelergebnis gefixt werden
    4) Dann soll die Formel aus den restlichen Zellen wieder herausgelöscht werden
    5) Dann soll die Formel in alle Spalten ab dem 2. Arbeitstag eingetragen werden, das Formelergebnis für den 2. Arbeitstag gefixt werden und die Formel aus den restlichen Arbeitstagen rausgelöscht werden.

    Das ganze soll für jeden Arbeitstag (also für alle 250 Spalten) passieren, bis die Zelle mit dem Wort "ENDE" erreicht ist. Ich weiß, das klingt jetzt etwas konfus, aber es handelt sich um eine recht komplexe Berechnung einer Ressourcensteuerung, die nur auf diese Weise funktionackelt, damit man die Ergebnisse nicht verfälscht und keinen Zirkelschluß produziert.
    Ich selbst habe leider so gut wie keine Ahnung von VBA und hab mir jetzt mit Mühe einen Teil des Codes zusammengefrickelt (zumindest den Anfang). Vielleicht hat einer ne Idee, wie man das Problem lösen kann?

    CODE:

    Sub Überstundenberechnung()
    Dim Spalte, Zeile11 as long

    Spalte = 3
    Zeile11 = 153

    Cells(Zeile11, Spalte + 251).Value = "ENDE"

    Do
    Cells(Zeile11, Spalte).Select
    ActiveCell.FormulaR1C1 = _
    "=IF(R[-1]C>0,IF(RANK(R[-47]C,R[-47]C:R106C254)

    :)
     
    moehre_koeln, 5. November 2006
    #1
  2. Hi Möhre,
    Bin mir nicht ganz sicher, ob Dich richtig verstanden habe, aber versuchs mal damit:
    Code:
     
  3. Hallo Ralf,

    vielen Dank für Deine Antwort!!!!

    Zu Deiner ersten "Frage": Yepp, ist immer die gleiche Zeile.

    2. Die Auswertung der leeren Zelle am Ende funktioniert leider nicht (hatte ich zunächst auch geplant) weil ja alle Zellen zunächst leer sind und durch das Makro erst befüllt werden sollen. Wenn ich denn Loop also bei enden lasse, dann hört die Schleife direkt in der 2. Spalte auf, weil diese Zelle ja bereits leer ist. Daher habe ich mir eine "Endmarke" gesetzt.

    Deinen Code habe ich eben ausprobiert. Bei der Codezeile:

     
    moehre_koeln, 7. November 2006
    #3
  4. Loop, der jeweils 1 Spalte "weiterspringt"

    ...dann versuchs mal so:
    Code:
     
  5. Hi Ralf,

    vielen Dank, hab's grad ausprobiert. Es macht FAST, was es soll :-)).
    So wie der Code jetzt ist, schreibt er die Formel in Zelle 1, fixt den Wert und geht dann weiter zu Zelle 2, schreibt die Formel rein, fixt den Wert etc.

    Er muß aber in alle 254 Zellen die Formel schreiben, dann erst in der ersten Zelle den Wert fixen und danach die Formel aus den Restzellen wieder rauslöschen.

    Das ginge zu lösen, wenn man den Code dahingehend umschreibt, daß er nicht nur eine Zelle auswählt

    sondern quasi die ganze Range von der Startzelle bis Zelle R153C254.
    Ich hatte das auch schonmal ausprobiert mit

    Range(Cells(Zeile11, Spalte), R153C254).Select

    Aber da kriege ich die Fehlermeldung: "Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen".
    Ich vermute also, daß ich die Range falsch angegeben habe. Oder?

    Viele Grüße
    Möhre
     
    moehre_koeln, 7. November 2006
    #5
  6. Hi Möhre,
    ...das muss ich aber jetzt nicht verstehen, oder? Wenn die Formel gelöscht werden soll und der Wert nicht 'gefixt' werden soll, wozu dann der Aufwand mit der Formel? Egal...
    Du willst Zeile 153, Spalte F bis ...?(254) markieren? Dann so:

    Range(Cells(Zeile11, 6), cells(zeile11,254)).Select

    oder, wenn alles gelöscht werden soll dann so (ohne select):

    Range(Cells(Zeile11, 6), cells(zeile11,254)).clear
     
  7. Hi Ralf,

    :-) ich hab mir schon fast gedacht, daß das mit dem "Formel erst reinschreiben, dann nur in einer Zelle fixen und dann die restlichen Zellen wieder rauslöschen" etwas kurios klingt. Würde jetzt etwas länger dauern, das zu erklären, dazu müsste ich Dir mein ganzes Berechnungsmodell um die Ohren hauen. Ich denke, das erspar ich Dir lieber *grins

    Ansonsten vielen Dank für den korrigierten Code für die Range. Damit hat's geklappt. Den übrigen Code habe ich mir inzwischen zusammengebastelt, scheint auch zu funktonieren. Nur die Range hatte mir noch gefehlt.

    Nochmal ganz herzlichen Dank für Deine Hilfe!
    Möhre
     
    moehre_koeln, 8. November 2006
    #7
  8. Loop, der jeweils 1 Spalte "weiterspringt"

    Hallo Ralf,

    ich nochmal. Nur, falls es Dich interessiert, habe ich hier den Code nochmal im ganzen reingepackt:

    Code:
     
    moehre_koeln, 8. November 2006
    #8
Thema:

Loop, der jeweils 1 Spalte "weiterspringt"

Die Seite wird geladen...
  1. Loop, der jeweils 1 Spalte "weiterspringt" - Similar Threads - Loop jeweils Spalte

  2. Stundenzettel, VBA, MoveNext funktioniert nicht

    in Microsoft Access Hilfe
    Stundenzettel, VBA, MoveNext funktioniert nicht: Hallo, ich habe folgendes Problem und bin um jeden Denkanstoß sehr dankbar! Tabelle tblLOG: Daten einer Stechuhr; Datum, Uhrzeit, Mitarbeiter Tabelle tblKalender: alle Kalendertage bis zum Jahr...
  3. Bestimmte Daten zwischen innerhalb eines Datumsbereichs einer Tabelle Anfügen

    in Microsoft Access Hilfe
    Bestimmte Daten zwischen innerhalb eines Datumsbereichs einer Tabelle Anfügen: Hallo, ich habe per Google und Foren SuFu leider nichts passendes finden können, wage aber zu bezweifeln, dass Access da an seine Grenzen kommt, da es eigentlich recht banal ist. Ich habe eine...
  4. VBA Loop : Werte suchen und löschen

    in Microsoft Excel Hilfe
    VBA Loop : Werte suchen und löschen: Hallo zusammen, ich habe folgende Ausgangslage: Im Tabellenblatt Auswahl sollen Artikel eingegeben werden und via Formel wird der zugehörige Lagerplatz ausgegeben (funktioniert soweit), sodass...
  5. Hilfe! Loop ohne Ende ...

    in Microsoft Excel Hilfe
    Hilfe! Loop ohne Ende ...: Sub FindeProd_Zeilen() Dim c As Range Dim firstAddress As String With Worksheets("Terminverschiebungen").Columns(Spalte_Produktion) Set c =...
  6. Loop / Code soll mehrere Tabellen durchlaufen

    in Microsoft Excel Hilfe
    Loop / Code soll mehrere Tabellen durchlaufen: Hallo Zusammen Ich wende mich erneut mit einer VBA-Problemstellung an euch. Und zwar habe ich in einer Datei verschiedene Sheets, welche in ihrer „Art“ folgendermassen aufgeteilt und vorhanden...
  7. Bereiche kopieren/einfügen und mittels Loop "automatisieren"

    in Microsoft Excel Hilfe
    Bereiche kopieren/einfügen und mittels Loop "automatisieren": Hallo liebes MS Office Forum, da ich noch ein VBA Anfänger bin bräuchte ich bitte eure Hilfe *Smilie Zu meinem Problem: Ich möchte im Arbeitsblatt 1 einen definierten Bereich kopieren und in...
  8. Do While Loop Schleife

    in Microsoft Access Hilfe
    Do While Loop Schleife: Hallo zusammen, ich brauche Unterstützung bei der Entwicklung einer Schleife. In Access habe ich eine Datenbank welche Trainingspläne fürs Schwimmen speichert. Nun soll automatisch ein neuer...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden