Ein Freund bat mich für ihn ein kleines Makro zu schreiben, was bestimmte Werte eines Tabellenblatts mit der Gesamtstatistik in die zugehörigen Projektleitertabellen überträgt.
Die Werte stehen jeden Tag in einer anderen Zeile. Aber immer in der Zeile, in der der erste "" Eintrag in einer Nachbarzelle kommt.
Mit meinem Excel 2007 klappt das wunderbar:
Sub test()
Dim arr As Variant, arr2(4) As Variant, arr3(4) As Variant, arr4(4) As Variant
Dim i As Long, letzteZeile
arr = Array("Projektleiter1", "Projektleiter2", "Projektleiter3", "Projektleiter4", " _
Projektleiter5")
Sheets("Statistik").Activate
letzteZeile = Cells(Rows.Count, 9).End(xlUp).Row ' letzter Zeile für einen Statistikwert
For i = LBound(arr2) To UBound(arr2)
arr2(i) = Range("D1:D" & letzteZeile).Find(arr(i)).Row ' Reihe vom Projektleiter _
finden
' nun die erste leere Zeile in der Spalte F vom Projektleiter finden
arr3(i) = Range(Cells(arr2(i), 6), Cells(letzteZeile, 6)).Find("", LookIn:=xlValues). _
Row
' Werte einlesen von Spalte G bis J
arr4(i) = Range(Cells(arr3(i), 7), Cells(arr3(i), 10)).Value
Next i
' eingelesene Werte auf die jeweiligen Projektleitertabellen übertragen
For i = LBound(arr) To UBound(arr)
Sheets(arr(i)).Activate
Range("e34:h34") = arr4(i)
Next i
End Sub
--------------------------
Bei mir läuft es wunderbar.
Aber bei meinem Freund kommt mit Excel 97 immer eine Fehlermeldung (ich glaube 1004) an der Stelle, wo ich das Array zurückschreiben möchte.
Auf die Schnelle habe ich das zwar mit Range().copy und PasteSpecial bei ihm gelöst.
Aber ihr versteht sicherlich, daß mich das nervt.
Wo liegt der Fehler? Hat jemand einen Lösungsansatz?
MfG
Markus