Spalten kopieren per VBA
#1
Hallo zusammen,

ich möchte aus einer Quelldatei nur Spalten in eine Zieldatei per VBA kopieren. Dabei sollen nur die Daten kopiert werden wo sich ein "x" in der Zeile befindet.

Beispiel:

Quelldatei: A, B, D, Z in Zieldatei B, C, E, F

Ich habe mir momentan folgendes Makro aus dem Netz einzeln zusammen getragen.

Code:
Public Sub kopieren()
Dim i As Integer
Dim cell As Range
'Zeilen in Zieltabelle löschen '
Worksheets("Tabelle2").Range("A1:s20").Clear
i = 1
For Each cell In Tabelle1.Range("s2:s500")
If Not cell Is Nothing Then
   
    ' Groß und Kleinschreibung beachten '
    If cell.Value = LCase("X") Or cell.Value = UCase("x") Then
        ' Hier kopieren in die Zieltabelle'
        cell.EntireRow.Copy Destination:=Tabelle2.Rows(i)
        i = i + 1
    End If
End If
Next cell
End Sub
Dies funktioniert auch soweit ganz gut. Allerdings werden hier die ganzen Zeilen mit allen Spalten kopiert.
Nach dem ich kein VBA-Profi bin und schon Stunden Versuche starte, wollte ich fragen ob Ihr mir helfen könntet.
Schon mal vielen Dank

Sorry bin wahrscheinlich mit meinem Problem im falschen Bereich. Habe zu spät bemerkt.
Top
#2
Code:
Sub M_snb()
    sn = sheet1.Range("A1:Z20")
    sz = Evaluate("row(1:" & UBound(sn) & ")")
    sq = Application.Find("x", sn)
    
    For j = 1 To 4
      If Not IsError(Application.Match(1, Application.Index(sq, sz, Choose(j, 1, 2, 4, 26)))) Then c00 = c00 & "_" & j
    Next
    sp = Split(Mid(c00, 2), "_")
    
    Sheet2.Cells(1).Resize(UBound(sz), UBound(sp) + 1) = Application.Index(sn, sz, sp)
End Sub
Top
#3
Hallo snb,

danke für das script.

Wäre es möglich das Du das Kommentieren könntest damit ich das ganze verstehe?
Top
#4
Schau mal hier:

http://www.snb-vba.eu/VBA_Arrays_en.html#L_6.7
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste