Ich plage mich gerade mit den Heldentaten meines Vorgängers. :) Und zwar hat jener eine wenig brauchbare Tabelle entworfen, in der alle Mitarbeiter je nach Arbeitsstelle in einer Zeile stehen, anstatt in einer Spalte. Mittlerweile gibt es mehr Mitarbeiter als Spalten, daher: Problem. ;)
Ich habe mich gerade an VBA versucht, die die Mitarbeiter aus der alten Datei in die neue kopieren soll. Das ganze sieht wie folgt aus:
Sub Transfer()
Dim n As Integer 'Spalte
Dim m As Integer 'Zeile
Dim r As Integer 'Lauf-Index für Zieldatei
Application.ScreenUpdating = False
r = 5
For m = 4 To 208 Step 1 'Zeilen 4 bis 208
For n = 20 To 49 Step 1 'Spalten T bis AW
Workbooks("Head Count Report OLD.xls").Activate
Sheets("Headcount").Activate
If Cells(m, n) "" Then 'Falls Zelle NICHT leer
Cells(m, n).Copy 'kopieren und
Windows("Head Count NEW.xls").Activate
Sheets("Headcount").Activate
Cells(r, 4).PasteSpecial 'in "NEW" unterhalb D5 eintragen
n = n + 1
r = r + 1
Else
n = n + 1
End If
Next n
m = m + 1
Next m
End Sub
Amüsanter - und mir leider unverständlicherweise, werden allerdings wahlfrei irgendwelche Werte übernommen. (Ich kann jedenfalls kein Muster erkennen.) Wie es eigentlich funktionieren sollte war: Ab Zeile 4 von Spalte T bis AW jede Zelle durchgrasen. Wenn sie einen Namen enthält, soll dieser kopiert werden und in Datei "Head Count NEW.xls" ab Spalte D5 eingefügt werden. Naja, leider kommt aber nur ein viertel der Daten an... :(
Weiß jemand Rat? Die besten Grüße aus Japan,
Ralf