Supportnet / Forum / Tabellenkalkulation
Variable in Makro? Zugriff auf die letzten beiden Sheets einer aktiven Datei
Frage
Hallo,
ich verwende derzeit ein Makro zum Vergleichen von gleichlautenden Zellen zweier Tabellen, wobei die Zellen farbig hinterlegt werden, in denen sich unterschiedliche Werte befinden. Die Tabelle des Monats Dez05 wird mit der Tabelle Nov05 verglichen. das klappt auch ganz hervorragend. Es ist aber unpraktisch jeden Monat diese Tabellenbezeichnungen im Makro manuell anzupassen. Gibt es da eine Lösung, dass z.B. nur die beiden letzten Tabellenblätter (ohne diese namentlich in das Makro mit einzubinden) genutzt werden?
Ich hoffe, dass ich mich verständlich genug ausgedrückt habe!?
Hier das Makro:
[code]
Sub Vergleichen()
Dim Zeile As Long
Zeile = Sheets("Nov05"). _
UsedRange.SpecialCells(xlCellTypeLastCell).Row
For SpaltenWiederholung = 9 To 28
For ZeilenWiederholungen = 3 To Zeile
If Worksheets("Nov05").Cells(ZeilenWiederholungen, _
SpaltenWiederholung) <> Worksheets("Dez05"). _
Cells(ZeilenWiederholungen, SpaltenWiederholung) Then
Worksheets("Nov05").Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = 43
Worksheets("Dez05").Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = 43
Else
Worksheets("Nov05").Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = xlNone
Worksheets("Dez05").Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = xlNone
End If
Next ZeilenWiederholungen
Next SpaltenWiederholung
End Sub
[/code]
Danke für Eure Hilfe
nightdream
Antwort 1 von piano
Hallo
Hier ein Bespiel zum Umgang mit den beiden letzten Tabellenblättern ohne Benennung
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -
Hier ein Bespiel zum Umgang mit den beiden letzten Tabellenblättern ohne Benennung
Sheets(Sheets.Count - 1).Activate
MsgBox Sheets.Count
Sheets(Sheets.Count).Activate
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -
Antwort 2 von Arno_Nym
Sollte so gehen:
Dann hast du die Namen der letzten beiden Tabellenblätter in den obigen Variablen und kannst diese einfach einsetzen.
Arno
Dim Letzte, Vorletzte As String
Letzte = Sheets(Sheets.Count).Name
Vorletzte = Sheets(Sheets.Count - 1).Name
Dann hast du die Namen der letzten beiden Tabellenblätter in den obigen Variablen und kannst diese einfach einsetzen.
Arno
Antwort 3 von nighty
hi all :)
wi gewünscht :)
gruss nighty
Option Explicit
Sub Vergleichen()
Dim Zeile As Long
Zeile = Sheets("Nov05"). _
UsedRange.SpecialCells(xlCellTypeLastCell).Row
For SpaltenWiederholung = 9 To 28
For ZeilenWiederholungen = 3 To Zeile
If Worksheets(Sheets.Count - 1).Cells(ZeilenWiederholungen, _
SpaltenWiederholung) <> Worksheets(Sheets.Count). _
Cells(ZeilenWiederholungen, SpaltenWiederholung) Then
Worksheets(Sheets.Count - 1).Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = 43
Worksheets(Sheets.Count).Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = 43
Else
Worksheets(Sheets.Count - 1).Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = xlNone
Worksheets(Sheets.Count).Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = xlNone
End If
Next ZeilenWiederholungen
Next SpaltenWiederholung
End Sub
wi gewünscht :)
gruss nighty
Option Explicit
Sub Vergleichen()
Dim Zeile As Long
Zeile = Sheets("Nov05"). _
UsedRange.SpecialCells(xlCellTypeLastCell).Row
For SpaltenWiederholung = 9 To 28
For ZeilenWiederholungen = 3 To Zeile
If Worksheets(Sheets.Count - 1).Cells(ZeilenWiederholungen, _
SpaltenWiederholung) <> Worksheets(Sheets.Count). _
Cells(ZeilenWiederholungen, SpaltenWiederholung) Then
Worksheets(Sheets.Count - 1).Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = 43
Worksheets(Sheets.Count).Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = 43
Else
Worksheets(Sheets.Count - 1).Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = xlNone
Worksheets(Sheets.Count).Cells(ZeilenWiederholungen, _
SpaltenWiederholung).Interior.ColorIndex = xlNone
End If
Next ZeilenWiederholungen
Next SpaltenWiederholung
End Sub
Antwort 4 von nightdream
Hallo piano, Hallo Arno,
ein herzliches Dankeschön an Euch beide.
Ich habe der Einfachheit halber Arnos Lösung in mein Makro eingesetzt. Klappt wunderbar.
Danke nochmal
Gruß nightdream
ein herzliches Dankeschön an Euch beide.
Ich habe der Einfachheit halber Arnos Lösung in mein Makro eingesetzt. Klappt wunderbar.
Danke nochmal
Gruß nightdream