Supportnet Computer
Planet of Tech

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
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:

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

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