Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellenblatt aktivieren

Tabellenblatt aktivieren
08.10.2007 13:44:00
Bolo
Hallo Liebe Community!
Ich hab da mal wieder ein kleines Problemchen...
Ich hab hier 3 Tabellenblätter in denen unterschiedliche List geführt werden. Nun soll mir mein Makro die letzte beschriebene Zeile raussuchen, eins weiter nach unten gehen und dann dort anfangen zu schreiben. Das funktioniert mit:
Dim Zeile As Integer
Zeile = Range("B65536").End(xlUp).Row + 1
Sheets("Eingang 02").Select
Range("B" & Zeile).Select

auch ganz gut, aber sobald ich in einem anderen Tabellenblatt bin und das Makro ausführe, springt er zwar zum richtigen Tabellenblatt, aber leider nicht in die Zeile in die er soll. Er nimmt sich dann einfach irgendeine und fängt an dort zu schreiben. Wenn das zu bearbeitende Tabellenblatt aktriviert ist, funzt es wunderbar! Bitte helft mir, ich bin ratlos!!
hatte es auch so probiert, hat aber auch nicht funktioniert:
Dim Zeile As Integer
Zeile = Range("B65536").End(xlUp).Row + 1
Sheets("Eingang 02").Activate
Sheets("Eingang 02").Select
Range("B" & Zeile).Select

Lg
Bolo

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt aktivieren
08.10.2007 13:52:54
Worti
Hallo Bolo,
richtig qualifizieren ist das Geheimnis. So sollte es gehen:
Zeile = Sheets("Eingang 02").Range("B65536").End(xlUp).Row + 1
Gruß Worti

AW: Tabellenblatt aktivieren
08.10.2007 13:57:44
Bolo
Hallo Worti,
ich danke dir!!! du bist mein held!
lg
Bolo

AW: Tabellenblatt aktivieren
08.10.2007 13:59:56
Bolo
Hallo NoNet,
auch dir vielen Dank! Aber mit der Antwort von Worti hats schon geklappt, man ich liebe dieses Forum einfach... bzw. seine Community... ;)

Anzeige
Du musst auch die letzte Zeile des richtigen....
08.10.2007 13:57:00
NoNet
....Blattes ermitteln !
Hallo Bolo,
das ist nicht "irgend eine beliebige" Zeile, sondern die letzte Zeile des gerade aktiven Tabellenblattes !!
D.h. : Du musst entweder VORHER auf das richtige Blatt wechseln oder zumindest das richtige Blatt angeben :
Zeile=Sheets("Eingang 02").Cells(Rows.count, "B").End(xlup).Row+1
ODER :

Dim Zeile As Integer
Sheets("Eingang 02").Select
Zeile = Cells(Rows.Count,"B").End(xlUp).Row + 1
Range("B" & Zeile).Select

Gruß, NoNet
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblatt aktivieren in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem Du ALT + F11 drückst.

  2. Erstelle ein neues Modul, indem Du mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" klickst und "Einfügen" > "Modul" wählst.

  3. Füge den folgenden Code ein, um ein bestimmtes Tabellenblatt zu aktivieren und die nächste freie Zeile zu finden:

    Dim Zeile As Integer
    Zeile = Sheets("Eingang 02").Cells(Rows.Count, "B").End(xlUp).Row + 1
    Sheets("Eingang 02").Activate
    Range("B" & Zeile).Select
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um das gewünschte Tabellenblatt zu aktivieren und die nächste freie Zeile zu nutzen.


Häufige Fehler und Lösungen

  • Problem: Das Makro aktiviert das falsche Tabellenblatt.

    • Lösung: Stelle sicher, dass Du den Namen des Tabellenblatts korrekt angibst. Zum Beispiel: Sheets("Eingang 02").Activate.
  • Problem: Das Makro wählt eine zufällige Zeile aus.

    • Lösung: Ermittele die letzte Zeile des spezifischen Arbeitsblatts direkt, anstatt dich auf die aktive Zeile zu verlassen. Benutze den Code von Worti:
    Zeile = Sheets("Eingang 02").Range("B65536").End(xlUp).Row + 1

Alternative Methoden

Eine Alternative zur Verwendung von Activate und Select ist die direkte Referenzierung:

Dim Zeile As Integer
Zeile = Sheets("Eingang 02").Cells(Rows.Count, "B").End(xlUp).Row + 1
Sheets("Eingang 02").Cells(Zeile, 2).Value = "Dein Wert"

Mit dieser Methode sparst Du dir das Aktivieren des Blattes, was die Ausführung des Codes effizienter gestaltet.


Praktische Beispiele

  1. Letzte Zeile in einem anderen Tabellenblatt finden und dort Wert einfügen:

    Sub WertEinfügen()
       Dim Zeile As Integer
       Zeile = Sheets("Eingang 02").Cells(Rows.Count, "B").End(xlUp).Row + 1
       Sheets("Eingang 02").Cells(Zeile, 2).Value = "Neuer Wert"
    End Sub
  2. Aktivieren des letzten Tabellenblatts:

    Sub LetztesTabellenblattAktivieren()
       Dim LetztesBlatt As Worksheet
       Set LetztesBlatt = ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
       LetztesBlatt.Activate
    End Sub

Tipps für Profis

  • Verwende Option Explicit am Anfang Deines VBA-Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Nutze With-Anweisungen, um den Code sauberer und effizienter zu gestalten:

    With Sheets("Eingang 02")
       Zeile = .Cells(Rows.Count, "B").End(xlUp).Row + 1
       .Cells(Zeile, 2).Value = "Neuer Wert"
    End With
  • Erkunde die Verwendung von WorksheetFunction für komplexere Berechnungen direkt auf dem Arbeitsblatt.


FAQ: Häufige Fragen

1. Wie kann ich ein Tabellenblatt aktivieren, ohne es sichtbar zu machen? Du kannst es nicht "aktivieren", ohne es sichtbar zu machen, aber Du kannst die Arbeiten im Hintergrund erledigen, indem Du die direkte Referenzierung verwendest.

2. Was passiert, wenn das angegebene Tabellenblatt nicht existiert? Der Code wird einen Laufzeitfehler auslösen. Stelle sicher, dass der Blattname korrekt ist oder verwende Fehlerbehandlung, um diesen Fehler abzufangen.

3. Kann ich mehrere Tabellenblätter gleichzeitig aktivieren? Nein, in Excel VBA kann immer nur ein Tabellenblatt aktiv sein. Du kannst jedoch mit mehreren Blättern arbeiten, indem Du sie direkt referenzierst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige