Hallo,
ich bin leider neu in VBA und komme nicht ganz mit verschachtelten Schleifen zu Recht.
Ich möchte Daten aus einer Quelldatei nach bestimmten Kriterien, nämlich dem Namen der Person und einer bestimmten Zeitperiode in die Zieldatei kopieren und einfügen.
In den Zeilen sind die Namen hinterlegt und in den Spalten die Perioden. Die Reihenfolge der Namen ist in der Zieldatei eine andere, jedoch die Reihenfolge der Zeitperioden gleich der Quelldatei. Ich finde den Fehler nicht und es scheint auch etwas kompliziert zu sein. Denke, dass es einfacher geht...
Hat jemand vielleicht einen Tipp?
Grüße Ernst
Sub Macro2()
Dim mbk As Workbook
Dim wksEclipse As Worksheet, wksZEMA As Worksheet, wksExxeta As Worksheet
Set mbk = ThisWorkbook
Set wksEclipse = mbk.Worksheets("Source")
Set wksZEMA = mbk.Worksheets("ZEMA")
Set wksExxeta = mbk.Worksheets("Exxeta")
Set wksMain = mbk.Worksheets("Main")
wksEclipse.Activate
Range(Cells(1, 1), Cells(150, 150)).NumberFormat = "@"
Cells(1, 1).Select
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
False, NoHTMLFormatting:=True
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A:A").Find(What:="BBL", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Cells(38, 1).Replace "BBL", "BBL Import"
wksMain.Activate
wksEclipse.Activate
count_rowQ = wksEclipse.Cells(Rows.Count, 1).End(xlUp).Row
count_columnQ = wksEclipse.Cells(28, Columns.Count).End(xlToLeft).Column
wksMain.Activate
count_rowZ = wksMain.Cells(Rows.Count, 2).End(xlUp).Row
count_columnZ = wksMain.Cells(2, Columns.Count).End(xlToLeft).Column
For i = 2 To count_rowZ 'Name in Zieldatei
Name = wksMain.Cells(i, 2).Value
For j = 1 To count_rowQ 'Name in Quelldatei
If wksEclipse.Cells(j, 1).Value = Name Then
wksMain.Activate
For k = 2 To count_columnZ 'Zeit in Zieldatei
Timeperiod = wksMain.Cells(2, k).Value
wksEclipse.Activate
For l = 1 To count_columnQ 'Zeit in Quelldatei
If wksEclipse.Cells(28, l).Value = Timeperiod Then
wksMain.Cells(i, k).Value = wksEclipse.Cells(j, l)
End If
Next l
Next k
End If
Next j
Next i
End Sub
|