Excel VBA Zellen in ein anderes Tabellenblatt Kopieren wenn Bedingung erfüllt?
Hallo,
ich habe ein problem und habe keine Ahnung von VBA.
Ich habe eine Tabelle in "A" steht der Name in "P" der Kurs und in "Y" ist die Bedingung "ja" oder "nein".
Das war das einzige das ich gefunden habe was auch funktionierte. Allerdings Kopiert es die komplette Zeile.
Sub BedingteKopieZeilen()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
With Tabelle2
ZeileMax = .UsedRange.Rows.Count
n = 7
For Zeile = 3 To ZeileMax
If .Cells(Zeile, 25).Value = "Kurtaxe" Then
.Rows(Zeile).Copy Destination:=Tabelle10.Rows(n)
n = n + 1
End If
Next Zeile
End With
End Sub
Ich bedanke mich für eure Hilfe
Bernd
3 Antworten
Ich habe das jetzt mal nicht getestet, aber versuche es mal mit:
Sub BedingteKopieZeilen()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
With Tabelle2
ZeileMax = .UsedRange.Rows.Count
n = 7
For Zeile = 3 To ZeileMax
If .Cells(Zeile, 25).Value = "Kurtaxe" Then
.Cells(Zeile, 1).Copy Destination:=Tabelle10.Cells(n, 1)
.Cells(Zeile, 16).Copy Destination:=Tabelle10.Cells(n, 2)
n = n + 1
End If
Next Zeile
End With
End Sub
Und nutze für Code, den Du hier einfügst bitte die Option "Quelltext".
Teste mal:
Sub BedingteKopieZeilen()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
With Sheets("Tabelle2")
ZeileMax = .UsedRange.Rows.Count
n = 7
For Zeile = 3 To ZeileMax
If .Cells(Zeile, 25).Value = "Kurtaxe" Then
.Cells(Zeile, 1).Copy Destination:=Sheets("Tabelle10").Cells(n, 1)
.Cells(Zeile, 16).Copy
Sheets("Tabelle10").Cells(n, 2).PasteSpecial Paste:=xlPasteValues
n = n + 1
End If
Next Zeile
End With
End Sub
SVERWEIS wäre natürlich auch eine Möglichkeit.
Hallo,
Dein Code hat mir Super weiter geholfen Viielen Viiielen Dank nd es funktioniert jetzt alles so wie es soll. Ich finde es Super das das es solche Leute Wie euch gibt die anderen helfen. Danke
Statt Tabelle.Rows(Zeilennummer) nimmst du ein anderes Range-Objekt.
Bei einer einzelnen Zelle
Tabelle.Cells(Zeilennummer, Spaltennummer)
bei mehreren Zellen
Tabelle.Range(Tabelle.Cells(Zeilennummer, Startspaltennummer), Tabelle.Cells(Zeilennummer, Endspaltennummer))
Hallo PWolf,
es tut mir leid, aber ich verstehe es nicht.
ich habe das "Tabelle.Cells(Zeilennummer, Spaltennummer)" jetzt versucht und bekomme die erste Zelle in jede Spalte kopiert
.Cells(Zeile, 1).Copy Destination:=Tabelle10.Rows(n)
was möchtest du denn kopieren? nur eine Zelle? Und soll die Formatierung mit kopiert werden oder nur ein Wert übertragen werden?
Hallo Danke für die fertige Formol. Leider habe ich in spalte 16 eine Formel stehen und vermute, das es deswegen nicht geht es zeigt mir die Namen an aber den Betrag nicht, da stehr #Bezug. Jetzt weis ich nicht kann man da mit VBA den Betrag anzeigen lassen oder mit einem SVerweis?. Trotz alledem vielen Herzlichen Dank. ich habe mir schon seit einer Woche den Kopf zerbrochen und im Internet nach einer Lösung gesucht. Danke
Bernd