Zeilen in Tabelle2 kopieren und löschen wenn ...

Bild

Betrifft: Zeilen in Tabelle2 kopieren und löschen wenn ...
von: Andreas
Geschrieben am: 02.11.2015 14:42:21

Hallo
ich habe im ganzen Archiv gesucht, aber wohl alles zu komplizierte VBA-Codes gefunden.
VBA soll Tabelle1 ab Zeile2 durchsuchen bis Zeile500.
Wenn in Spalte C das Wort "bezahlt" vorkommt, soll VBA die ganze Zeile in Tabelle2 kopieren (am Ende anhängen) und die betreffende Zeile in Tabelle1 löschen.
Danke für eine Hilfe an einen Anfänger.
Andreas

Bild

Betrifft: AW: Zeilen in Tabelle2 kopieren und löschen wenn
von: matthias
Geschrieben am: 02.11.2015 16:01:03
Hallo Andreas,

Sub Kopieren()
Dim wksQ As Worksheet, wksZ As Worksheet
Dim rZelle As Range
Dim lZeile As Long
Set wksQ = Tabelle1 'Quelle
Set wksZ = Tabelle2 'Ziel
lZeile = wksZ.Cells(wksZ.Rows.Count, 1).End(xlUp).Row + 1
For Each rZelle In wksQ.Range("C2:C500")
    If InStr(1, rZelle, "bezahlt") <> 0 Then
        rZelle.EntireRow.Copy Destination:=wksZ.Cells(lZeile, 1)
        rZelle.EntireRow.Delete
        lZeile = lZeile + 1
    End If
Next rZelle
End Sub
lg Matthias

Bild

Betrifft: AW: Zeilen in Tabelle2 kopieren und löschen wenn
von: matthias
Geschrieben am: 02.11.2015 16:13:19
Entschuldige, ich habe gerade gemerkt, dass das einfache Löschen der Zeile keine gute Idee war:

Sub Kopieren()
Dim wksQ As Worksheet, wksZ As Worksheet
Dim rZelle As Range
Dim lZeile As Long
Set wksQ = Tabelle1 'Quelle
Set wksZ = Tabelle2 'Ziel
lZeile = wksZ.Cells(wksZ.Rows.Count, 1).End(xlUp).Row
For Each rZelle In wksQ.Range("C2:C500")
    If InStr(1, rZelle, "bezahlt") <> 0 Then
        rZelle.EntireRow.Copy Destination:=wksZ.Cells(lZeile, 1)
        rZelle.EntireRow.Clear
        lZeile = lZeile + 1
    End If
Next rZelle
wksQ.Range("C2:C500").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
lg Matthias

Bild

Betrifft: AW: Zeilen in Tabelle2 kopieren und löschen wenn
von: Andreas
Geschrieben am: 02.11.2015 19:36:12
Hallo Matthias
fast perfekt, ausser ....
Leider schreibt Dein VBA-Script im Ziel immer mit Zeile1 beginnend, statt die Zeilen die zu schreiben sind, angehängt werden.
Sogar die Titelzeile (Zeile1 im Ziel) wird überschrieben.
Danke nochmals für Hilfe und Entschuldigung für die Störung.
Andreas

Bild

Betrifft: AW: Zeilen in Tabelle2 kopieren und löschen wenn
von: Werner
Geschrieben am: 02.11.2015 21:12:58
Hallo Andreas,
ändere mal folgende Zeile

rZelle.EntireRow.Copy Destination:=wksZ.Cells(lZeile +1, 1)
Gruß Werner

Bild

Betrifft: AW: Zeilen in Tabelle2 kopieren und löschen wenn
von: matthias
Geschrieben am: 03.11.2015 08:05:43
Hallo,
ja natürlich muss man zur letzten beschriebenen Zeile noch eins dazu addieren, im ersten Code stehts auch richtig. Kleiner Fehler meinerseits. Ich bin nur überrascht wie ich es geschafft hab dies zu löschen :)
lg Matthias

Bild

Betrifft: AW: Zeilen in Tabelle2 kopieren und löschen wenn ...
von: DD
Geschrieben am: 02.11.2015 22:21:09
Moin Andreas,
vielleicht hilft dir diese Beispieldatei weiter.
Ich war so frei und habe den Code von matthias etwas abgewandelt.
https://www.herber.de/bbs/user/101197.xlsm
Gruß Dieter_D

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilen in Tabelle2 kopieren und löschen wenn ..."