In welcher Zeile ändert sich ein Wert der bis dato gleich war?

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von joerg_W.

    In welcher Zeile ändert sich ein Wert der bis dato gleich war?

    Liebe Community,

    ich habe mal wieder ein Problem und somit eine Frage an Euch:

    Ich bräuchte einen VBA Code der mir die Zeile nennt und die Differenz zum vorherigen Wechsel, in der sich ein Wert ändert, der in den vorherigen Zeilennummern gleich war, Beispiel:

    Zeilen NrProjekt

    1Banane

    2Banane

    3BananeHier bräuchte ich die
    Zeilennumer, also 3
    und die Differenz zu vorher = 3

    4Apfel

    5ApfelHier bräuchte ich die
    Zeilennumer, also 5
    und die Differenz zu vorher = 2

    6Orange

    7Orange

    8Orange

    9Orange

    10OrangeHier bräuchte ich die
    Zeilennumer, also 10
    und die Differenz zu vorher = 5

    11...


    Vielen Dank für Eure Hilfe,

    Jörg
    Scheint auf Anhieb nicht sonderlich schwierig ...

    Visual Basic-Quellcode

    1. Private Sub FillDataCells()
    2. tp_row = 1
    3. tp_fruit = Sheets(1).Cells(1, 2).Value
    4. tp_counter = 1
    5. Do Until Sheets(1).Cells(tp_row, 1).Value = ""
    6. If Sheets(1).Cells(tp_row + 1, 2).Value <> tp_fruit Then
    7. Sheets(1).Cells(tp_row, 3).Value = CStr(tp_row)
    8. Sheets(1).Cells(tp_row, 4).Value = CStr(tp_counter)
    9. tp_fruit = Sheets(1).Cells(tp_row + 1, 2).Value
    10. tp_counter = 1
    11. Else
    12. tp_counter = tp_counter + 1
    13. End If
    14. tp_row = tp_row + 1
    15. Loop
    16. End Sub


    Aber geht bestimmt noch schöner/stilvoller.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VaporiZed“ ()

    Hallo VaporiZed,

    ich habe nun dein Macro ausprobiert. Leider funktioniert es doch nicht 100% so wie gewünscht.

    Bei der ersten Schleife macht das Makro seinen Job ganz gut. Es schreibt nur nicht den Namen der letzten Zelle hin.

    Setzt der zur zweiten Schleife an, stimmt nichts mehr. Das Marko zählt nur noch die Zeilen runter, also 4, 5, 6, 7, 8 ... und daneben wird nur noch eine 1 eingetragen.

    Hat noch jemand eine Idee hier?

    Schöne Grüße

    Jörg
    Wie sind Deine Mögklichkeiten, den Code an Deine Bedürfnisse anzuupassen? Ok, den 2. Durchlauf kann/sollte man durch die folgenden Codezeilen ergänzen, die zwischen meine Codezeilen 5 und 6 kommen, und eventuell vorhandene alte Ergebnisse zu löschen.

    Visual Basic-Quellcode

    1. Sheets(1).Cells(tp_row, 3).Value = ""
    2. Sheets(1).Cells(tp_row, 4).Value = ""


    Aber sonst?

    joerg_W schrieb:

    Es schreibt nur nicht den Namen der letzten Zelle hin.

    Was für'n Name?

    Hier mal vorher/nachher bei mir in einer Testtabelle:
    Bilder
    • vorher.png

      6,58 kB, 354×250, 269 mal angesehen
    • nachher.png

      7,01 kB, 364×247, 129 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.