Moin Leute,
folgende Methode funktioniert nicht. Sie überschreibt immer wieder eine Spalte (in diesem Fall die zweite). Sinn der Methode ist, dass mit den Parametern wb_von eine Quell-Mappe und wb_nach eine Zielmappe definiere. In der Quellmappe wird die erste Zeile nach der Spaltenüberschrift durchsucht, die im dritten Parameter des Prozeduraufrufs steht. wird dieser String gefunden, soll die komplette Spalte kopiert und in der Zielmappe ganz rechts eingefügt werden. Ein normaler Prozeduraufruf könnte so aussehen (die Arbeitsmappen werden korrekt geöffnet, daher lasse ich hier die Objektbezeichner wb_von und wb_nach einfach drin):
call spalte\_kopieren(wb\_von, wb\_nach, "Vorname")
Leider kommt als Ergebnis raus, dass die zweite Spalte der Zielmappe die einzig beschriebene ist, und darin stehen die Werte des jeweils letzten Prozeduraufrufs. Also wird immer wieder die selbe Spalte überschrieben. Die Usedrange-Eigenschaft gibt jedesmal den Wert 1 aus, was ich komisch finde. Wenn jemand den Fehler sieht, wäre es cool wenn er/sie mir helfen kann. Ich benutze XL2003 SP2
Hier der Code
Private Sub spalte\_kopieren(ByRef wb\_von As Workbook, ByRef wb\_nach As Workbook, ByRef spstr As String)
wb\_von.Activate
Range("A1").Activate
copy\_col = Cells.Find(spstr, ActiveCell, xlFormulas).Column
ActiveSheet.Cells(1, copy\_col).EntireColumn.Select
Selection.Copy
wb\_nach.Activate
sp = wb\_nach.ActiveSheet.usedrange.Columns.Count
ActiveSheet.Cells(1, sp + 1).Select
ActiveSheet.Paste
End Sub