Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro ausführen bei Fokus-Verlust

Makro ausführen bei Fokus-Verlust
Niko
Hallo zusammen,
ich erreiche, dass ein Makro ausgeführt wird, sobald in einer Tabelle eine Zelle den Focus erhält und möchte, dass ein weiteres Makro ausgeführt wird, wenn diese Zelle den Fokus wieder verliert.
Hat hierzu jemand einen Tipp?
Danke schonmal und schönen Tag.
Gruß
Niko
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro ausführen bei Fokus-Verlust
14.06.2012 10:39:43
hary
Hallo Niko
meinst Du das so? Hier wenn Du mit der maus nach A1 gehst.

Option Explicit
Dim letzte As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
letzte = True
MsgBox "Makro1"
ElseIf letzte = True Then
letzte = False
MsgBox "Makro2"
End If
End Sub

gruss hary
Anzeige
AW: Makro ausführen bei Fokus-Verlust
14.06.2012 12:07:29
Niko
Hallo Hary,
danke für deine Rückmeldung. Ich habe deinen Code an meine Tabelle angepasst, das 2. Makro wird jedoch nicht gestartet.
Ich möchte folgendes erreichen. Wird der Focus in Zelle B14 gesetzt, wird eine MsgBox eingeblendet und gleichzeitig der Name der Tabelle z.B. in Tabelle 1 geändert. Das funktioniert!
Nachdem das Datum in Zelle B14 geändert wurde soll beim Verlassen der Zelle das 2. Makro gestartet, und der Blattname z.B. in Januar 2012 geändert werden werden. Dieser Teil funktioniert nicht!
Mein Code sieht folgendermaßen aus:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Antwort
Dim Temp As Boolean
If Target.Address(False, False) = "B14" Then
If Antwort = vbYes Then
Temp = True
Tabelle1.name = "Tabelle 1"
…
ElseIf Temp = True Then
Temp = False
Tabelle1.name = Format(Tabelle1.Cells(2, 4).Value, "MMMM YYYY")
…
Hast du hierzu eine Idee?
Gruß
Niko
Anzeige
hat sich erledigt - blendet MsgBox ein (owT)
14.06.2012 12:43:24
Niko
Hi
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Makro ausführen bei Fokus-Verlust in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei, in der Du das Makro implementieren möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Wähle das entsprechende Blatt im Projekt-Explorer aus, in dem Du das Makro einfügen möchtest.

  4. Füge den folgenden Code ein:

    Option Explicit
    Dim letzte As Boolean
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Target.Address = "$B$14" Then
            letzte = True
            MsgBox "Makro1"
            ' Hier kannst Du den Blattnamen ändern
            Me.Name = "Tabelle 1"
        ElseIf letzte = True Then
            letzte = False
            ' Hier wird der Blattname basierend auf dem Datum geändert
            Me.Name = Format(Me.Cells(2, 4).Value, "MMMM YYYY")
            MsgBox "Makro2"
        End If
    End Sub
  5. Speichere die Datei und schließe den VBA-Editor.

  6. Teste die Funktion, indem Du die Zelle B14 auswählst und dann einen anderen Bereich verlässt.


Häufige Fehler und Lösungen

  • Makro wird nicht ausgeführt: Überprüfe, ob Du die Makros in den Excel-Optionen aktiviert hast.
  • Namenskonflikt: Achte darauf, dass der Name der Tabelle nicht bereits einem integrierten Namen in Excel entspricht. Der Fehler „name darf integriertem namen nicht gleichen“ kann auftreten.
  • Namenskonflikt geht nicht weg: Wenn Du einen Namen verwendest, der bereits existiert, musst Du diesen Konflikt beenden, indem Du einen anderen Namen wählst.

Alternative Methoden

  • Verwendung eines Timer-Events: Du kannst anstelle von Worksheet_SelectionChange auch ein Timer-Event nutzen, um regelmäßig den Fokus zu prüfen und entsprechende Makros auszuführen.
  • Formularsteuerelemente: Verwende Schaltflächen oder andere Steuerelemente, um Makros manuell auszuführen, anstatt den Fokus zu verwenden.

Praktische Beispiele

  • Beispiel 1: Wenn in Zelle C10 der Fokus gesetzt wird, soll ein Makro ausgeführt werden, das eine Berechnung durchführt. Ändere die Adresse im Code entsprechend.

    If Target.Address = "$C$10" Then
        ' Führe Berechnung durch
    End If
  • Beispiel 2: Du kannst auch mehrere Zellen überwachen, indem Du eine Liste von Adressen in einem Array speicherst und die Bedingung entsprechend anpasst.


Tipps für Profis

  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um festzustellen, wo Fehler auftreten.
  • Modularität: Trenne Deine Makros in verschiedene Subroutinen, um die Wartung zu erleichtern.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um unerwartete Situationen elegant zu handhaben.

FAQ: Häufige Fragen

1. Warum funktioniert mein Makro nicht, wenn ich den Fokus verlasse? Es kann an einer falschen Adressüberprüfung liegen oder daran, dass der Fokus nicht richtig erkannt wird. Stelle sicher, dass die Adresse korrekt ist.

2. Wie kann ich einen Excel-Namenskonflikt vermeiden? Verwende eindeutige Namen, die nicht mit integrierten Namen in Excel übereinstimmen, um Namenskonflikte zu vermeiden.

3. Was passiert, wenn ich den Blattnamen auf einen bereits existierenden Namen setze? Excel wird einen Fehler ausgeben, weil der Name bereits verwendet wird. Du solltest sicherstellen, dass der Name eindeutig 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