Bestimmte Zeilen suchen und Text kopieren

  • Excel

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von MissLeela.

    Bestimmte Zeilen suchen und Text kopieren

    Hallo Leute,

    hoffe mal wieder auf eure Hilfe.

    Ich habe zwei Tabellenblätter: Im ersten stehen in Spalte C in den Zeilen 8 bis 148 verschiedene Schlagwörter untereinander. In Spalte A können mehrere Kreuzchen neben den Schlagwörtern gesetzt werden. Über einen Button soll dann ein Makro gestartet werden, welches in Spalte A die Kreuzchen sucht und dann die entsprechenden Schlagwörter dieser Zeilen in das Tabellenblatt 2 kopiert.

    Habs mit einer for...next Schleife versucht, die hinter das Tabellenblatt 2 gelegt habe, aber nichts ist passiert.


    Visual Basic-Quellcode

    1. Public Sub SucheKreuze()
    2. Dim i As Long
    3. Dim Zeile As Long
    4. i = 2
    5. With Sheets("Tabelle1")
    6. For Zeile = 8 To 148
    7. If (.Cells(Zeile, 1)) = "x" Then
    8. Cells(i, 1) = .Cells(Zeile, 3)
    9. i = i + 1
    10. End If
    11. Exit For
    12. Next Zeile
    13. End With
    14. End Sub


    Vll kann mir ja jemand von euch da weiterhelfen. Für den Fall, dass meine Erklärung nicht verständlich genug ist, habe ich eine Beispiel- Tabelle angehangen.

    Schon mal vielen Dank!!
    Miss Leela
    Dateien
    Hallo MissLeela,

    Alles wird gut! ;)

    probier das hier mal aus:

    Visual Basic-Quellcode

    1. Private Sub CommandButton1_Click()
    2. ' Variables Ende der Spalte C wird ermittelt und gespeichert
    3. EndeTB1 = ThisWorkbook.Worksheets("Tabelle1").Cells(Rows.Count, 3).End(xlUp).Row
    4. ' Anfang der ersten Zählschleife
    5. For i = 1 To EndeTB1
    6. ' Wenn x in Spalte A (indivduelle Zeile) vorhanden, dann...
    7. If ThisWorkbook.Worksheets("Tabelle1").Cells(i, 1) = "x" Then
    8. 'Ermittel letzte beschriebene Zelle auf Tabelle2
    9. EndeTB2 = ThisWorkbook.Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row
    10. ' Trage Wert aus Spalte C in Tabelle2 in erste freie Zelle ein
    11. ThisWorkbook.Worksheets("Tabelle2").Cells(EndeTB2 + 1, 1) = ThisWorkbook.Worksheets("Tabelle1").Cells(i, 3)
    12. 'Ende Verzweigung
    13. End If
    14. ' Ende Schleife i
    15. Next i
    16. ' Ende Anweisung
    17. End Sub


    Falls noch fragen bestehen, einfach fragen!

    MfG
    No!
    Hey,

    vielen dank für deine schnelle Antwort. Hast Recht: Alles wird gut.

    Das klappt perfekt. Trotzdem hab ich noch eine Frage.

    Wenn man die Kreuzchen löscht und neue setzt (also immer noch in der selben Spalte, aber eben in andere Zeilen), dann wird der entsprechende Text auf das Tabellenblatt 2 unter den vorherigen Text kopiert. Wie bekommt man es hin, dass der vorherige Text gelöscht wird und nur der neue wieder ab der ersten freien Zeile aufgelistet wird?

    Hatte mal was ausprobiert mit Range("...").ClearContents
    Dann wurden aber die Kreuzchen gelöscht auf Tabellenblatt 1 und nicht der Text auf Tabellenblatt 2. (Naja, immerhin :) )

    Gruß
    Miss Leela

    MissLeela schrieb:

    Hey,

    Wenn man die Kreuzchen löscht und neue setzt (also immer noch in der selben Spalte, aber eben in andere Zeilen), dann wird der entsprechende Text auf das Tabellenblatt 2 unter den vorherigen Text kopiert. Wie bekommt man es hin, dass der vorherige Text gelöscht wird und nur der neue wieder ab der ersten freien Zeile aufgelistet wird?

    Gruß
    Miss Leela


    Momentan wird es noch unter die letzten Einträge geschrieben, da das Programm hier...

    Visual Basic-Quellcode

    1. 'Ermittel letzte beschriebene Zelle auf Tabelle2
    2. EndeTB2 = ThisWorkbook.Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row


    ... immer die erste freie Zeile ermittelt.

    Also:
    Du willst bevor neue Einträge auf Tabellenblatt 2 eingetragen werden die vorhanden Zeilen löschen.
    Dies kannst du auch mit einer For-Nextschleife realisieren.
    Das bedeutet du musst ermitteln wo die letzte beschrieben Zeile auf Tabellenblatt 2 ist und dann in einer For-Nextschleife alle Zellen bis dorthin löschen.

    Versuch das mal eigenständig, falls du es nicht schaffen solltest meldest du dich nochmal.
    Hier ist auch noch ein Link, dort steht auch viel darüber geschrieben!

    Google ist dein Freund :)

    MfG
    No!