Und schon wieder ein freundliches Hallo Euch allen!
Ich bin mit meinem Excel-Makro schon recht weit gekommen - aber an den einfachsten Sachen scheitert es jetzt.
Zum Problem: ich habe acht Sheets in meinem Excel-Workbook. Aus den ersten vier sollen mit je vier einzellnen Makros Daten ausgelesen werden und dann in einem weiteren Sheet alle nebeneinander und dann untereinander geordnet werden. Quasi ergeben die vier ersten Sheets in dem neuen einzellnen Sheet vier Tabellen nebeneinander. Ich habe dafür auch vier einzellne Makros geschrieben - reliability! Diese vier einzellnen Makros sind alle gleich geschrieben - allein die Zuordnung der Zellen und Spalten ist jeweils angepaßt.
folgend der Code für die dritte Tabelle aus Sheet(3):
Application.ScreenUpdating = False
Dim loletzte As Long
'löschen der Liste in Sheet "Berechnung"
Sheets(6).Range("W70:AG2500").ClearContents
'Stablage 1
'kopieren: Datum/Charge/Bemerkung
Sheets(3).Range("A5:C2500").Copy
Sheets(6).Activate
Range("W70").PasteSpecial Paste:=xlPasteAll, operation:=xlNone, SkipBlanks:=False, Transpose:=False
'kopieren: Stablage 1
Sheets(3).Range("G5:I2500").Copy
Sheets(6).Activate
Range("AA70").PasteSpecial Paste:=xlPasteAll, operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Beschriften Stablage 1
Range(Cells(70, 26), Cells(2499, 25).End(xlUp).Offset(0, 1)) = "1"
'Stablage 2
'kopieren: Datum/Charge/Bemerkung
Sheets(3).Range("A5:C2500").Copy
Sheets(6).Activate
loletzte = IIf(IsEmpty(Range("W2499")), Range("W2499").End(xlUp).Row + 1, 2499)
Cells(loletzte, 23).PasteSpecial Paste:=xlPasteAll, operation:=xlNone, SkipBlanks:=False, Transpose:=False
'kopieren: Stablage 2
Sheets(3).Range("K5:M2500").Copy
Sheets(6).Activate
Cells(loletzte, 27).PasteSpecial Paste:=xlPasteAll, operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Beschriften Stablage 2
Range(Cells(70, 26), Cells(2499, 25).End(xlUp).Offset(0, 1)) = "2"
'Stablage 3
'kopieren: Datum/Charge/Bemerkung
Sheets(3).Range("A5:C2500").Copy
Sheets(6).Activate
loletzte = IIf(IsEmpty(Range("W2499")), Range("W2499").End(xlUp).Row + 1, 2499)
Cells(loletzte, 23).PasteSpecial Paste:=xlPasteAll, operation:=xlNone, SkipBlanks:=False, Transpose:=False
'kopieren Stablage 3
Sheets(3).Range("O5:Q2500").Copy
Sheets(6).Activate
Cells(loletzte, 27).PasteSpecial Paste:=xlPasteAll, operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Beschriften Stablage 3
Range(Cells(70, 26), Cells(2499, 25).End(xlUp).Offset(0, 1)) = "3"
Für die ersten beiden Tabellen funktioniert der Code auch ohne Probleme - bei Ausführung des dritten bzw. vierten Makros tritt dann folgender Fehler auf:
End(xlUp) erkennt nicht die letzte beschriebene Zelle sondern fügt die Daten aus dem Zwischenspeicher an die Zeile 2499 aber immerhin in der richtigen Spalte an. Trotzdem ist wie erwähnt die Zeile damit die Falsche - quasi nicht die letzte beschriebene (diese kann sich aufgrund unterschiedlicher Eintragungen in Sheet(1) auch durchaus ändern!).
Hat jemand eine Idee warum dieser Fehler nach zwei erfolgreichen Makroausführungen vorher nicht auftaucht und im dritten bzw. vierten Makro dafür plötzlich ja? Vielleicht sitz ich auch einfach mal wieder zu lange vor dem gesamten Workbook und seh wieder Bäume ohne ´nen Wald dazu^^
|