Microsoft Excel

Herbers Excel/VBA-Archiv

VBA bestimmte Spalten kopieren

Betrifft: VBA bestimmte Spalten kopieren von: Andrea
Geschrieben am: 13.09.2014 11:58:03

Hallo zusammen,

ich habe eine Tabelle mit z.B. 8 Spalten und i-vielen Zeilen.
Diese Daten werden von einer externen Ressource gezogen und diese nenne ich "RohData".
Ich habe dann in meiner xls Sheet verschiedene Tabellenblätter die je nach Kriterien teile dieser Rawdata enthalten sollen.
Sprich ich muss die Rohdaten nach bestimmten Kriterien durchsuchen und wenn diese Kriterien zutreffen soll die Zeile in das entsprechende Tabellenblatt kopiert werden. Da ich aber nicht alle Spalten kopiert haben möchte, sondern nur z.b. Spalte 1, 3 und 5 oder 2,3 und 6 kann ich nicht einfach die ganze Zeile kopieren und einfügen.
Folgenden VBA Code habe ich mir bisher zusammengebastelt:

Dim i As Integer
Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("Raw Data")
Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("Ergebnisliste")

For i = 2 To ws1.Range("B6553").End(xlUp).Row
If ws1.Cells(i, 7) = "Waggon" And ws1.Cells(i, 2) = "Lech" And ws1.Cells(i, 6) = "Sorte 8" Then ws1.Range(ws1.Cells(i, 1), ws1.Cells(i, 1) (i,5)).Copy ws2.Rows(ws2.Cells(ws2.Rows.Count, 2).End(xlUp).Row + 1)

Next i

In diesem Beispiel kopiert er mir aber Spalte 1 bis Spalte 5. Was muss ich abändern oder wie kann ich das abändern, dass er nur ausgewählte Spalten kopiert?

  

Betrifft: AW: VBA bestimmte Spalten kopieren von: Hajo_Zi
Geschrieben am: 13.09.2014 12:00:25

ich hätte das über Formel gelöst, siehe auch hier
https://www.herber.de/forum/messages/1381471.html

GrußformelHomepage


  

Betrifft: AW: VBA bestimmte Spalten kopieren von: Andrea
Geschrieben am: 13.09.2014 12:22:14

Hi Hajo,

jetzt hast Du auf den gleichen Thread verlinkt. Mit ner Formel habe ich das ganze auch schon probiert aber ist nicht gerade trivial mehrere Suchkriterien zu definieren. :-) Dennoch danke für den schnelle Antwort!


  

Betrifft: AW: VBA bestimmte Spalten kopieren von: Gerold
Geschrieben am: 13.09.2014 20:46:47

Hallo Andrea

du hast da einen Fehler in deinem Code

ws1.Range(ws1.Cells(i, 1), ws1.Cells(i, 1) (i,5)).Copy

du meinst bestimmt

ws1.Range(ws1.Cells(i, 1), ws1.Cells(i, 5)).Copy



Mfg Gerold

Rückmeldung wäre nett.


 

Beiträge aus den Excel-Beispielen zum Thema "VBA bestimmte Spalten kopieren"