Wenn Wert dann Zelle kopieren

Bild

Betrifft: Wenn Wert dann Zelle kopieren
von: anna
Geschrieben am: 04.08.2015 13:55:17

Hallo zusammen,
ich hab eine kurze Frage. Mein Makro klappt nur ab und an aber nicht durchgängig.
Eigentlich soll es so funktionieren, dass wenn in einer Zelle in der Spalte k "erledigt" steht die ganze Zeile in das Tabellenblatt "Erledigt" kopiert wird. Zuvor würde ich gern einen bestimmten Bereich im Tabellenblatt "Erledigt" leeren.
Mein Code schaut wie folgt aus:

Sub Erledigt()
    Dim i As Long, suchCol As Long
    Dim strSearch As String
    Dim srcWks As Worksheet, tarWks As Worksheet
    
    
   
   Worksheet("Erledig").Range("a4:200").Clear
   
    Set srcWks = Worksheets("Offene Punkte")
    
    Set tarWks = Worksheets("Erledigt")
    
    suchCol = 11
    
    strSearch = "erledigt"
       
            With srcWks
        For i = 4 To .Cells(Rows.Count, suchCol).End(xlUp).Row
                
                If .Cells(i, suchCol).Text = strSearch Then
                Rows(i).Copy Destination:=tarWks.Cells(tarWks.Cells(Rows.Count, 1).End(xlUp). _
Row + 1, 1)
                
            End If
        Next i
    End With
End Sub

Die Übertragung der Daten funktioniert nur ab und an und gelöscht werden soll nur einmal zu Beginn, sich aber nicht in der Schleife wiederholen.
Sieht jemand meinen Fehler?
Vielen Dank
Anna

Bild

Betrifft: AW: Wenn Wert dann Zelle kopieren
von: EtoPHG
Geschrieben am: 04.08.2015 15:10:00
Hallo Anna,
1. Der Code ist nicht kompilierbar!
2. Worksheet ist keine Auflistung
3. Range("A4:200") ist kein auflösbarer Bereich
4. "Erledig" ist wohl nicht das Gleiche wie "Erledigt"
5. "erledigt" ist auch nicht das Gleiche wie "Erledigt" oder "ERLEDIGT"...
8. Rows(i) ist bezgl. Workbookund Worksheet unvollständig referenziert!
versuch's nochmal! (Erledigt)
Gruess Hansueli

Bild

Betrifft: AW: Wenn Wert dann Zelle kopieren
von: ede
Geschrieben am: 04.08.2015 15:22:03
Hallo Anna,
eigentlich kann Dein Makro nicht funktionieren, da Fehler enthalten sind. Anbei Dein Code mal etwas verändert.

Sub Erledigt()
    Dim i As Long, suchCol As Long
    Dim z As Long
    Dim strSearch As String
    Dim srcWks As Worksheet
    Dim tarWks As Worksheet
    Set srcWks = Worksheets("Offene Punkte")
    Set tarWks = Worksheets("Erledigt")
    tarWks.Range("a4:K200").Clear
    suchCol = 11
    strSearch = UCase("erledigt")
    z = 4
    With srcWks
        For i = 4 To .Cells(Rows.Count, suchCol).End(xlUp).Row
            If UCase(.Cells(i, suchCol).Text) = strSearch Then
                .Rows(i).Copy Destination:=tarWks.Cells(z, 1)
                z = z + 1
            End If
        Next i
    End With
End Sub

Gruss

Bild

Betrifft: AW: Wenn Wert dann Zelle kopieren
von: anna
Geschrieben am: 04.08.2015 15:53:11
Super danke das klappt. Vielen Dank für eure Antwort.
Noch einiges zum lernen für mich :)
Liebe Grüße
Anna

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Wenn Wert dann Zelle kopieren"