Hallo Bernd,
vielleicht solltest du mal erklären was das Makro eigentlich auf den einzelnen Tabellenblättern machen soll.
Dein bisheriger Code ist ein ziemliches Durcheinander. Was er eigentlich machen soll ist völlig unklar.
'1. Modulkopf fehlt
2. warum deklarierst du die Variable als Public?
Public wks As Excel.Worksheet
3. warum deklarierst du die Variable als Public?
Public i As Long
For i = 1 To ThisWorkbook.Worksheets.Count
Set wks = ThisWorkbook.Worksheets(i)
'4. die Variable aktZeile wird nirgendwo befüllt, ist also 0
'5. die Variable ersteZeile wird nirgendwo befüllt, ist also 0
For aktZeile = aktZeile To ersteZeile Step -1
If (Cells(aktZeile, 15) > Cells(aktZeile, 16)) Then
blablabla
End If
'6. wieso veränderst du hier den Wert?
aktZeile = aktZeile - 1
'7. du hast hier ein Loop aber nirgendwo ein Do
Loop
Call Verkaufen_nächster_Tag_Erster
'Call Rendite_Long
'8. du hast hier ein End If, es fehlt aber dazu das If
End If
Next aktZeile
Next i
End Sub
Hier mal eine einfache Schleife über alle Tabellenblätter. Es wird der Name des jeweiligen Blattes in einer Messagebox ausgegeben.
Public Sub Test()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
MsgBox ws.Name
Next ws
End Sub
Mehr Hilfe ist mit den Angaben nicht möglich. Es ist klar, dass du in den jeweiligen Blättern von unten nach oben laufen und die Zellen der jeweiligen Zeile in Spalte O und P auf Übereinstimmung prüfen willst. Allerdings ist völlig unklar was passieren soll wenn sie übereinstimmen bzw. was passieren soll wenn sie nicht übereinstimmen.
Gruß Werner
|