ich möchte in A1 springen, wenn das Active Sheet ein bestimmtes ist.
Meine Versuche mit
hauen nicht hin. Was mache ich falsch?
Gruss,
Martin
ich möchte in A1 springen, wenn das Active Sheet ein bestimmtes ist.
Meine Versuche mit
hauen nicht hin. Was mache ich falsch?
Gruss,
Martin
So sollte es funktionieren ...
If ActiveSheet Is Sheets("xy") Then ActiveSheet.Range("A1").Select
Beispiel:
Option ExplicitPrivate Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet Is Sheets("Tabelle1") Then _
ActiveSheet.Range("A1").Select
End Sub
Gruß
Thomas
Risi Thomas Softwareentwicklung
Um in Excel VBA zu prüfen, ob das aktive Blatt einem bestimmten Namen entspricht und dann eine Aktion auszuführen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:
Öffne den VBA-Editor in Excel mit ALT + F11.
Wähle das entsprechende Arbeitsbuch im Projekt-Explorer aus.
Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "Module" klickst und "Einfügen" > "Modul" wählst.
Schreibe den folgenden Code:
Option Explicit
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name = "Tabelle1" Then
ActiveSheet.Range("A1").Select
End If
End Sub
Schließe den VBA-Editor und teste den Code, indem du zu "Tabelle1" wechselst.
Fehler: Der Code funktioniert nicht, wenn ich die Arbeitsmappe öffne.
ThisWorkbook-Modul platziert ist, da es sich um ein Arbeitsmappe-Ereignis handelt.Fehler: Der aktive Blattname wird nicht erkannt.
Es gibt verschiedene Möglichkeiten, mit dem aktiven Blatt zu arbeiten. Eine Alternative zu ActiveSheet ist die Verwendung von Worksheets:
If Worksheets("Tabelle1").Name = ActiveSheet.Name Then
' Deine Aktionen hier
End If
Du kannst auch mit With ActiveSheet arbeiten, um den Code klarer zu strukturieren:
With ActiveSheet
If .Name = "Tabelle1" Then
.Range("A1").Select
End If
End With
Springe zu einer bestimmten Zelle, wenn das aktive Blatt "Daten" ist:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name = "Daten" Then
ActiveSheet.Range("B2").Select
End If
End Sub
Ändere den Hintergrund des aktiven Blatts, wenn der Name "Bericht" ist:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name = "Bericht" Then
ActiveSheet.Cells.Interior.Color = RGB(255, 255, 0) ' Gelb
End If
End Sub
Option Explicit Anweisung, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.Select-Methode sparsam, um die Effizienz deines Codes zu steigern. Es ist oft besser, direkt auf die Range zuzugreifen.If ActiveSheet.Name Like "Tabelle*" für flexiblere Bedingungen, die auf Namensmuster basieren.1. Wie kann ich prüfen, ob das aktive Blatt ein bestimmtes Blatt ist, ohne den Namen zu kennen?
Du kannst die Indexnummer des Blattes verwenden, z.B. If ActiveSheet.Index = 1 Then.
2. Was passiert, wenn ich ein Blatt umbenenne?
Der Code wird weiterhin funktionieren, solange der Name im Code mit dem aktuellen Namen übereinstimmt. Ansonsten musst du den Namen im Code aktualisieren.