|  
                                             
	Hi, 
	in meinem Code setze ich 
wks.Cells(wks.Rows.Count, "A").End(xlUp).Offset(1) 
	ein, um die letzte Zeile zu ermitteln und darunter Daten zu schreiben. 
	Obwohl das Tabellenblatt nur 2 Zeilen hat, sehe ich im Debugger, dass die Eigenschfaft Row den Wert 5 hat. Dementsprechend wirdin Zeile 6, statt in Zeile 3 eingefügt. 
	Ich bin so ratlos. Wie kann das sein? wks bezieht sich auf die richtige Tabelle. 
	Wenn ich den Debugger vor dieser Stelle anhalte und in der Tabelle in Spalte "A" einmal alles ab der dritten Zeile markiere und Entfernen drücke, dann bekomme ich dieses Problem nicht. 
	Das Tabellenblatt wird zuvor vom Makro erstellt und die ersten beiden Zeilen eingefügt. Dann folgt diese Verarbeitung: 
Dim Spalte As Integer
Dim SpalteEnd As Integer
With ActiveSheet
SpalteEnd = .UsedRange.Columns.Count
For Spalte = SpalteEnd To 1 Step -1
If .Cells(1, Spalte).Value = "" Then
.Columns(Spalte).Delete
End If
Next Spalte
End With
Dim x&, j&
j = 1
For x = 2 To 102 Step 1
Cells(2, j).Value = Cells(1, x).Value
Columns(x).Delete
j = j + 1
Next 
	  
	  
	Anschließend, aus einer anderen Sub heraus, der Aufruf der Funktion, in der es zum Fehler kommt: 
Dim wks As Excel.Worksheet
   
  If WksMatch(ActiveSheet, ActiveWorkbook, wks) Then
'Und schließlich die Stelle, wo die letzte Zeile falsch belegt wird:
Function WksMatch(Optional ByVal Source As Excel.Worksheet, Optional ByVal CompareWith As Excel.Workbook, Optional ByRef Match As Excel.Worksheet) As Boolean
   
  If Source Is Nothing Then Set Source = ActiveSheet
  If CompareWith Is Nothing Then Set CompareWith = ActiveWorkbook
   
  Dim wks As Excel.Worksheet
  Dim i As Long
   
  For Each wks In CompareWith.Worksheets
    If Not wks Is Source Then
      If WksCompare(Source, wks, 1) Then
        Source.Rows(2).Copy wks.Cells(wks.Rows.Count, "A").End(xlUp).Offset(1)
	  
	  
	Vielen Dank im Voraus 
	Grüße 
	Tobi 
     |