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

If Target.Address = "$A$1" Then

Forumthread: If Target.Address = "$A$1" Then

If Target.Address = "$A$1" Then
Karsten
Hallo,
in folgendem Beispiel habe ich A1 und A2 verbunden.
Der Befehl:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
Application.CommandBars("Standard").Visible = False
Application.CommandBars("Formatting").Visible = False
Application.CommandBars("Worksheet Menu Bar").Enabled = False
End If
läuft nun so aber nicht. Kann mir jemand den Befehl richtig schreiben?
https://www.herber.de/bbs/user/65999.xls
Danke
Gruß
Karsten
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
..liegt an verbundener zelle.. gruß
18.11.2009 08:57:17
robert
If Target(1).Address = "$A$1" Then oT.
18.11.2009 09:00:07
Tino
noch ein Vorschlag...
18.11.2009 09:19:23
Matthias
Hallo
Willst Du wirklich nur bei klick in A3 wieder einschalten?
So habe ich gestestet. Da waren die verbundenen Zellen A1:A2 kein Problem.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
Application.CommandBars("Standard").Visible = False
Application.CommandBars("Formatting").Visible = False
Application.CommandBars("Worksheet Menu Bar").Enabled = False
Else
Application.CommandBars("Standard").Visible = True
Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Worksheet Menu Bar").Enabled = True
End If
End Sub
Gruß Matthias
Anzeige
AW: noch ein Vorschlag...
18.11.2009 09:42:26
Karsten
Hallo Matthias,
danke.
Willst Du wirklich nur bei klick in A3 wieder einschalten?

Ich hatte erst mal nachgedacht, wie ich die verbundene Zelle in Griff bekomme.
Obwohl, so funktioniert das für mich.
Gruß
Karsten
AW: noch ein Vorschlag...
18.11.2009 10:07:32
Luschi
Hallo Karsten,
so klappt es ach:
If Target.Offset(0, 0).Address = "$A$1" Then
Gruß von Luschi
aus klein-Paris
Anzeige
AW: noch ein Vorschlag...
18.11.2009 10:44:20
Karsten
Danke.
Gruß
Karsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Umgang mit Target.Address in verbundenen Zellen


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA auf die Target.Address einer verbundenen Zelle zuzugreifen und bestimmte Aktionen auszuführen, kannst Du den folgenden Code verwenden:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
        Application.CommandBars("Standard").Visible = False
        Application.CommandBars("Formatting").Visible = False
        Application.CommandBars("Worksheet Menu Bar").Enabled = False
    Else
        Application.CommandBars("Standard").Visible = True
        Application.CommandBars("Formatting").Visible = True
        Application.CommandBars("Worksheet Menu Bar").Enabled = True
    End If
End Sub

Dieser Code prüft, ob die Auswahl eine der verbundenen Zellen (A1 oder A2) betrifft und blendet die Standard-Werkzeugleisten aus, wenn dies der Fall ist.


Häufige Fehler und Lösungen

  1. Fehler: Target.Address funktioniert nicht bei verbundenen Zellen

    • Lösung: Verwende If Not Intersect(Target, Range("A1:A2")) Is Nothing Then, um die verbundenen Zellen korrekt zu adressieren.
  2. Fehler: Die Werkzeugleisten erscheinen nicht, wenn sie sollten

    • Lösung: Stelle sicher, dass Du die Else-Bedingung implementierst, um die Werkzeugleisten wieder sichtbar zu machen, wenn eine andere Zelle ausgewählt wird.

Alternative Methoden

Eine alternative Methode, um auf Target.Address zuzugreifen, ist die Verwendung von Target.Offset. Hierbei wird die Adresse der Zelle relativ zur aktuellen Auswahl betrachtet:

If Target.Offset(0, 0).Address = "$A$1" Then
    ' Deine Aktionen hier
End If

Diese Methode kann nützlich sein, wenn Du die Position der Zelle relativ zur aktuellen Auswahl berücksichtigen möchtest.


Praktische Beispiele

Hier sind einige Szenarien, in denen Du Target.Address effektiv nutzen kannst:

  1. Dynamische Anpassung der Benutzeroberfläche:

    • Bei der Auswahl von bestimmten Zellen kannst Du die Sichtbarkeit von Steuerelementen in Excel steuern, um eine benutzerfreundliche Schnittstelle zu schaffen.
  2. Automatisierte Berechnungen:

    • Du kannst spezifische Berechnungen automatisieren, die nur ausgeführt werden, wenn bestimmte Zellen (wie A1 oder A2) ausgewählt sind.

Tipps für Profis

  • Nutze Application.EnableEvents = False, um zu verhindern, dass das Worksheet_SelectionChange-Ereignis während der Ausführung Deines Makros erneut ausgelöst wird.
  • Achte darauf, dass Du den Code in das richtige Arbeitsblattmodul einfügst, um sicherzustellen, dass die Ereignisse korrekt ausgelöst werden.
  • Experimentiere mit verschiedenen Target-Bedingungen, um die Funktionalität weiter zu verbessern.

FAQ: Häufige Fragen

1. Warum funktioniert If Target.Address = "$A$1" nicht bei verbundenen Zellen?
Verbundenen Zellen haben nur eine Adresse, und Target.Address bezieht sich möglicherweise nicht auf die gesamte Gruppe. Verwende Intersect, um die verbundenen Zellen korrekt zu identifizieren.

2. Wie kann ich mehrere Zellen gleichzeitig überprüfen?
Verwende Intersect mit einem Zellbereich, wie in Range("A1:A2"), um mehrere verbundene Zellen zu überprüfen.

3. Was sind die wichtigsten Unterschiede zwischen Target.Address und Target.Offset?
Target.Address gibt die absolute Adresse der ausgewählten Zelle zurück, während Target.Offset eine Adresse relativ zur aktuellen Zelle angibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige