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

Forumthread: Bei Doppelklick Makrobefehl ausführen

Bei Doppelklick Makrobefehl ausführen
21.05.2007 01:02:49
Lena

Hallo...
Hallo ...
Bei mir hat z.B Zelle A1 den Namen "AAA", die Zelle A2 "BBB" usw.
Analog zu Zelle mit Namen "AAA" gibt es den Makro ebenfalls mit Namen"AAA". Bei "BBB" das selbe usw.
Nun möchte ich, dass bei Doppelklick auf die Zelle der dazugehörige Makro abläuft.
Wär super, wenn mir jemand weiterhelfen könnte.
Beste Grüße
Lena

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bei Doppelklick Makrobefehl ausführen
21.05.2007 01:33:00
Daniel
Hallo
im Prinzip mit diesem Makro
es gehört ins Modul der entsprechenden Tabelle.
die benannten Makros müssen im allgemeinen MODUL1 stehen.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim NA As Name
For Each NA In Application.Names
If NA.RefersToRange.Address = Target.Address And NA.RefersToRange.Parent.Name = Me.Name  _
Then
On Error GoTo Fehler1
Application.Run "'" & ThisWorkbook.Name & "'!Modul1." & NA.Name
On Error Resume Next
End If
Next
Exit Sub
Fehler1:
MsgBox "Makro " & NA.Name & " existiert nicht."
End Sub


Gruß, Daniel

Anzeige
AW: Bei Doppelklick Makrobefehl ausführen
21.05.2007 09:06:05
Lena
Hallo Daniel,
Schon mal vielen Dank. Aber es klappt nicht. " ' " muss ich doch nur mit meinem Makronamen (AAA) ersetzen?
Hab mal probehalber aus:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
sub makro1 gemacht um den Makro in Einzelschritten abzugehen (ob man daraus was schließen kann. weiß ich nicht).
Die Zeile:
If NA.RefersToRange.Address = Target.Address And NA.RefersToRange.Parent.Name = Me.Name _
wird schon übersprungen gleich nach Exit sub. Müsste ja heißen, dass "AAA" nicht existiert. Die MsgBox geht aber auch nicht auf.
Was müsste ich denn da noch abändern?
Beste Grüße
Lena

Anzeige
AW: Bei Doppelklick Makrobefehl ausführen
22.05.2007 00:42:10
Daniel
Hallo
du hast da was verwechselt.
wenn du schreibst, die Zelle hat einen NAMEN, dann ist das gemeint, was man unter EINFÜGEN-NAMEN-DEFINIEREN für einen bestimmten Zellbereich festlegt.
Darauf ist mein Marko auch ausgelegt.
Wenn aber das Makro von Jan3 bei dir funktioniert, dann hat die Zelle nicht den NAMEN "aaa" sondern den WERT "aaa".
Damit geht mein Makro natürlich nicht.
in diesem Fall kannst du auch folgendes verwenden:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
Application.Run "'" & ThisWorkbook.Name & "'!Modul1." & ActiveCell.Value
On Error GoTo 0
End Sub


hat den Vorteil, daß du das Marko nicht mehr anpassen musst, wenn du neue Makros hinzufügst, bzw dir einiges an Tipparbeit spart, wenn du viele Makros hast.
Gruß, Daniel

Anzeige
AW: Bei Doppelklick Makrobefehl ausführen
22.05.2007 01:07:43
Lena
auch Danke, werde es auch ausprobieren.
Lena

AW: Bei Doppelklick Makrobefehl ausführen
21.05.2007 14:04:00
Jan3
Hi,
Im Tabellenblatt folgenden Code eintragen:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveCell = "AAA" Then
AAA
End If
If ActiveCell = "BBB" Then
BBB
End If
If ActiveCell = "CCC" Then
CCC
End If
End Sub


AAA, BBB und CCC sind die Makros in einem Modul dieser Arbeitsmappe.
Jan

Anzeige
AW: Bei Doppelklick Makrobefehl ausführen
21.05.2007 23:40:00
Lena
Hallo Jan,
Allerbesten Dank! Klappt! Hätt ich ohne dich nicht hinbekommen!
Gruß
Lena
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Doppelklick auf Zelle: Makrobefehl ausführen in Excel VBA


Schritt-für-Schritt-Anleitung

Um einen Makrobefehl bei einem Doppelklick auf eine Zelle in Excel auszuführen, gehst Du wie folgt vor:

  1. Öffne die Excel-Arbeitsmappe, in der Du die Funktion implementieren möchtest.

  2. Klicke mit der rechten Maustaste auf den Tab des Arbeitsblatts und wähle "Code anzeigen".

  3. Füge den folgenden Code in das Modul des Arbeitsblatts ein:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       Dim NA As Name
       For Each NA In Application.Names
           If NA.RefersToRange.Address = Target.Address And NA.RefersToRange.Parent.Name = Me.Name Then
               On Error GoTo Fehler1
               Application.Run "'" & ThisWorkbook.Name & "'!Modul1." & NA.Name
               On Error Resume Next
           End If
       Next
       Exit Sub
    Fehler1:
       MsgBox "Makro " & NA.Name & " existiert nicht."
    End Sub
  4. Achte darauf, dass die Makros im Modul "Modul1" definiert sind.

  5. Speichere die Arbeitsmappe als Makro-fähige Datei (.xlsm).


Häufige Fehler und Lösungen

  • Fehler: "Makro existiert nicht."

    • Überprüfe, ob der Name des Makros richtig geschrieben ist und im Modul 1 vorhanden ist.
  • Zelle hat einen Wert, nicht einen Namen.

    • Wenn Du die Zelle mit einem Wert (z.B. "AAA") ansprechen möchtest, verwende den folgenden Code:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       On Error Resume Next
       Application.Run "'" & ThisWorkbook.Name & "'!Modul1." & ActiveCell.Value
       On Error GoTo 0
    End Sub

Alternative Methoden

Eine alternative Methode, um Doppelklicks in Excel VBA zu verarbeiten, ist das Eintragen spezifischer Bedingungen:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If ActiveCell = "AAA" Then
        AAA
    ElseIf ActiveCell = "BBB" Then
        BBB
    ElseIf ActiveCell = "CCC" Then
        CCC
    End If
End Sub

In dieser Methode wird direkt auf die Werte der Zellen reagiert.


Praktische Beispiele

  • Beispiel 1: Makro für "AAA" ausführen

    Wenn Du einen Doppelklick auf die Zelle mit dem Wert "AAA" machst, wird das Makro "AAA" ausgeführt.

  • Beispiel 2: Unterschiedliche Makros für verschiedene Zellen

    Du kannst verschiedene Makros für unterschiedliche Zellen definieren, indem Du die Werte entsprechend anpasst und die oben genannten Bedingungen anwendest.


Tipps für Profis

  • Namen für Zellen verwenden: Definiere Namen für Deine Zellen (über "EINFÜGEN" → "NAMEN" → "DEFINIEREN"), um die Verwaltung Deiner Makros zu erleichtern.
  • Fehlerbehandlung: Nutze die On Error-Anweisung, um dem Benutzer klare Rückmeldungen zu geben, falls etwas schiefgeht.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Makro immer funktioniert? Überprüfe die Namen Deiner Zellen und stelle sicher, dass sie korrekt in Deinem Makro referenziert werden.

2. Was passiert, wenn ich ein neues Makro hinzufüge? Wenn Du die Methode mit ActiveCell.Value verwendest, brauchst Du das Makro nicht anzupassen, solange der Zellwert dem Namen des neuen Makros entspricht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige