AW: Makro,Zählen klappt der Rest nicht
18.10.2005 15:44:57
Erich
Hallo Achim,
sorry, mein Tipp war falsch! Lauffähig wäre es mit folgender Zeile gewesen:
Selection.AutoFill Destination:=Range("I1:I" & (ce + anzd)), Type:=xlFillDefault
Ich habe mir die Prozedur noch mal angesehen - und wenig verstanden. Meine Kommentare habe ich eingefügt:
Sub Test2k()
Sheets("Gruppen").Activate
Set ziel = Workbooks("DienstplanMaster.xls").Sheets("Gruppen")
' Gibt es zwei Blätter mit dem Namen "Gruppen" ?
' (eines in der aktiven Mappe, eines in Dienstplan.Master.xls)
' geändert wird später nicht in ziel, sondern im aktiven Blatt
Lrow = ziel.Cells(Rows.Count, 4).End(xlUp).Row
' Nummer der letzten in ziel-Spalte D belegten Zeile
anzd = WorksheetFunction.CountA(ziel.Range("A" & Lrow))
' ist 1, wenn in ziel-Spalte A, Zeile Lrow etwas steht,
' 0 sonst
Range("I1").Select
ActiveCell.FormulaR1C1 = "."
ce = ActiveCell.Row ' ist immer = 1, da I1 die aktive Zelle ist
Selection.AutoFill Destination:=Range("I1:I" & (ce + anzd)), Type:=xlFillDefault
' füllt die Bereiche I1 oder I1:I2
' Warum überhaupt AutoFill ?
End Sub
Probier doch mal die beiden folgenden Prozeduren aus, vielleicht tun die auch das, was du erreichen willst:
Sub Test3()
Dim Lrow
Lrow = Cells(Rows.Count, 1).End(xlUp).Row
If Not IsEmpty(Cells(Lrow, 1)) Then Lrow = Lrow + 1
Sheets("Gruppen").Activate
Range("I1:I" & Lrow) = "."
End Sub
Test3 geht davon aus, dass alles auf einem einzigen Blatt "Gruppen" passiert. Wenn es bei dir um zwei Mappen mit jeweils einem Blatt "Gruppen" geht, sollte Test4 funktionieren:
Sub Test4()
Dim Lrow, ziel As Worksheet
Set ziel = Workbooks("DienstplanMaster.xls").Sheets("Gruppen")
Lrow = ziel.Cells(Rows.Count, 1).End(xlUp).Row
If Not IsEmpty(ziel.Cells(Lrow, 1)) Then Lrow = Lrow + 1
Sheets("Gruppen").Activate
Range("I1:I" & Lrow) = "."
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort