Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wenn aktive Zelle in Spalte C oder I, dann

Wenn aktive Zelle in Spalte C oder I, dann
11.07.2004 23:12:41
thomas
Hallo,
ich brauche für ein Makro folgende Anweisung, weiss aber nicht, wie das in VBA-Code formuliert wird:
Wenn die aktive Zelle sich in Spalte C oder in Spalte I befindet, dann etc...
Besten Dank
thomas
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wenn aktive Zelle in Spalte C oder I, dann
11.07.2004 23:17:33
Matthias
Hallo Thomas,

Sub Seitenwahl()
Dim iWks As Integer
Dim sp As Integer
sp = ActiveCell.Column
If sp = 3 Or sp = 9 Then
For iWks = 1 To Worksheets.Count
If Worksheets(iWks).Name <> ActiveCell.Value Then
Worksheets(iWks).Visible = False
End If
Next
Else
MsgBox "Zelle in falscher Spalte aktiv"
End If
End Sub

Du solltest aber noch abfragen, ob der Name gar nicht existiert, sonst kommt ein Laufzeitfehler.
Gruß Matthias
Anzeige
AW: Alternativ:
11.07.2004 23:23:11
Matthias
Hallo Thomas,
(bezieht sich auch auf http://xlforum.herber.de/messages/453480.html)
als Alternative, wenn Du das Blatt nur aktivieren willst, ohne alle anderen auszublenden:

Sub Seitenwahl()
Dim iWks As Integer
Dim sp As Integer
sp = ActiveCell.Column
If sp = 3 Or sp = 9 Then
On Error Resume Next
Sheets(ActiveCell.Value).Activate
If Err.Number > 0 Then MsgBox "Blatt """ & ActiveCell.Value & """ nicht gefunden!"
Err.Clear
End If
End Sub

Gruß Matthias
Anzeige
AW: Wenn aktive Zelle in Spalte C oder I, dann
FP
Hallo thomas,
wie wär's mit:
Select Case Activecell.Column
Case 3,9
...
End Select
Servus aus dem Salzkammergut
Franz
Vielen Dank an alle; funktioniert bestens! o.T.
11.07.2004 23:57:36
thomas
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Wenn die aktive Zelle in Spalte C oder I ist


Schritt-für-Schritt-Anleitung

Um ein Makro zu erstellen, das überprüft, ob die aktive Zelle sich in Spalte C (3) oder I (9) befindet, kannst du den folgenden VBA-Code verwenden:

Sub Seitenwahl()
    Dim iWks As Integer
    Dim sp As Integer
    sp = ActiveCell.Column
    If sp = 3 Or sp = 9 Then
        For iWks = 1 To Worksheets.Count
            If Worksheets(iWks).Name <> ActiveCell.Value Then
                Worksheets(iWks).Visible = False
            End If
        Next
    Else
        MsgBox "Zelle in falscher Spalte aktiv"
    End If
End Sub

Dieser Code prüft die Spalte der aktiven Zelle und blendet alle Arbeitsblätter aus, deren Namen nicht mit dem Wert der aktiven Zelle übereinstimmt.


Häufige Fehler und Lösungen

  1. Laufzeitfehler: Wenn der Name der aktiven Zelle in der Liste der Arbeitsblätter nicht existiert, kann es zu einem Laufzeitfehler kommen. Um dies zu vermeiden, füge eine Abfrage hinzu:
If Worksheets(iWks).Name <> ActiveCell.Value Then
    Worksheets(iWks).Visible = False
End If
  1. Falsche Spalte aktiv: Wenn du die aktive Zelle in einer anderen Spalte hast, wird eine MessageBox angezeigt. Achte darauf, dass die aktive Zelle in Spalte C oder I ist.

Alternative Methoden

Falls du die aktive Zelle in Spalte C oder I prüfen und nur das entsprechende Blatt aktivieren möchtest, kannst du folgenden Code verwenden:

Sub Seitenwahl()
    Dim sp As Integer
    sp = ActiveCell.Column
    If sp = 3 Or sp = 9 Then
        On Error Resume Next
        Sheets(ActiveCell.Value).Activate
        If Err.Number > 0 Then MsgBox "Blatt """ & ActiveCell.Value & """ nicht gefunden!"
        Err.Clear
    End If
End Sub

Dieser Code aktiviert nur das Arbeitsblatt, das dem Wert der aktiven Zelle entspricht, ohne andere Arbeitsblätter auszublenden.


Praktische Beispiele

  • Beispiel 1: Wenn die aktive Zelle "Januar" in Spalte C ist, wird das Arbeitsblatt "Januar" aktiviert.
  • Beispiel 2: Wenn du die aktive Zelle in Spalte I verwendest und der Wert "Februar" ist, wird das Arbeitsblatt "Februar" aktiviert, vorausgesetzt, es existiert.

Tipps für Profis

  • Verwende Select Case, um den Code übersichtlicher zu gestalten:
Select Case ActiveCell.Column
    Case 3, 9
        ' Dein Code hier
End Select
  • Nutze die Funktion Application.ScreenUpdating = False, um die Bildschirmaktualisierung zu deaktivieren, während das Makro läuft. Das erhöht die Geschwindigkeit und verhindert Flackern.

FAQ: Häufige Fragen

1. Was ist aktiv in Excel? Die aktive Zelle ist die Zelle, die aktuell ausgewählt ist und in der du Daten eingeben oder bearbeiten kannst.

2. Wie kann ich die aktive Zelle in Excel VBA abfragen? Du kannst die aktive Zelle mit ActiveCell ansprechen. Zum Beispiel ActiveCell.Column gibt die Spaltennummer der aktiven Zelle zurück.

3. Wie verhindere ich Laufzeitfehler bei ungültigen Arbeitsblattnamen? Verwende die On Error Resume Next-Anweisung, um Fehler zu ignorieren und anschließend mit If Err.Number > 0 zu überprüfen, ob ein Fehler aufgetreten ist.

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