Im Prinzip erstmal nicht weiter schwer. Verstehe nur gerade nicht, ob die Zeilenzuordnung zwischen den Spalten bestehen bleiben soll, oder ob sie sich verschieben darf.
Kopfzeile der Master-Tabelle
Beliebige Tabelle in einer Mappe:
BezE |
BezX |
BezB |
BezA |
WertE-1 |
WertX-1 |
WertB-1 |
WertA-1 |
WertE-2 |
WertX-2 |
WertB-2 |
WertA-2 |
WertE-3 |
WertX-3 |
WertB-3 |
WertA-3 |
Option Explicit
Sub Demo1()
Dim rngCsM As Excel.Range 'Spalten in Master
Dim rngCM As Excel.Range 'Spalte in Master
Dim rngCS As Excel.Range 'Spalte in Quelle
With Worksheets("Master")
Set rngCsM = .Range("A1", .Cells(1, .Columns.Count).End(xlToLeft))
End With
With Worksheets("Tabelle1") 'Beispiel
For Each rngCM In rngCsM.Cells
'Spalte (anhand Beschriftung) suchen
Set rngCS = .Rows(1).Find(What:=rngCM, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False)
If Not rngCS Is Nothing Then
Debug.Print "Spalte '"; CStr(rngCM); "' gefunden"
'Datenbereich der Spalte ref.
Set rngCS = .Range(rngCS.Offset(1), .Cells(.Rows.Count, rngCS.Column).End(xlUp))
'Werte übertragen
rngCM.Offset(1).Resize(rngCS.Rows.Count).Value = rngCS.Value
Else
Debug.Print "Spalte '"; CStr(rngCM); "' nicht gefunden"
End If
Next
End With
End Sub
BezA |
BezC |
BezD |
BezE |
WertA-1 |
|
|
WertE-1 |
WertA-2 |
|
|
WertE-2 |
WertA-3 |
|
|
WertE-3 |
Für mehrere Tabellen braucht man auch da eine Schleife, wo derzeit nur Tabelle1 referenziert wird. Weiterhin müsste man sich den max. Offset für den Zeilenindex in der Master nach dem übertragen der Daten merken, um im nächsten Durchgang die Daten unten dran zu setzen (rngCM.Offset(1) reicht da nicht).
Grüße
|