Note: The other languages of the website are Google-translated. Back to English

Wie kann ein Makro ausgelöst oder ausgeführt werden, indem auf eine bestimmte Zelle in Excel geklickt wird?

Während Sie mit Microsoft Excel arbeiten, wissen Sie möglicherweise, wie Sie ein bestimmtes Makro mit einer Befehlsschaltfläche ausführen. Aber wissen Sie, wie man ein Makro ausführt, indem Sie einfach auf eine bestimmte Zelle in einem Arbeitsblatt klicken? Dieser Artikel zeigt Ihnen die Methode zum Auslösen eines Makros, indem Sie detailliert auf eine bestimmte Zelle klicken.

Lösen Sie ein Makro aus oder führen Sie es aus, indem Sie auf eine bestimmte Zelle mit VBA-Code klicken


Lösen Sie ein Makro aus oder führen Sie es aus, indem Sie auf eine bestimmte Zelle mit VBA-Code klicken

Der folgende VBA-Code kann Ihnen beim Ausführen eines Makros helfen, indem Sie auf eine bestimmte Zelle in Excel klicken. Bitte gehen Sie wie folgt vor.

1. Klicken Sie im Arbeitsblatt mit der Zelle, auf die Sie klicken müssen, um ein Makro auszuführen, mit der rechten Maustaste auf die Registerkarte Blatt, und klicken Sie dann auf Code anzeigen in dem Kontextmenü.

2. In dem Microsoft Visual Basic für Applikationen Kopieren Sie das folgende VBA-Skript und fügen Sie es in das Codefenster ein.

VBA-Code: Lösen Sie ein Makro aus oder führen Sie es aus, indem Sie auf eine bestimmte Zelle klicken

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Selection.Count = 1 Then
        If Not Intersect(Target, Range("D4")) Is Nothing Then
            Call MyMacro
        End If
    End If
End Sub

Anmerkungen:

1. Im Code ist D4 die Zelle, auf die Sie klicken, um das Makro auszuführen.

2. Bitte ersetzen Sie den Codenamen Mein Makro Mit dem Makro werden Sie im Arbeitsblatt ausgeführt. Siehe Screenshot:

3. Drücken Sie die Taste Andere + Q Tasten gleichzeitig zum Schließen der Microsoft Visual Basic für Applikationen Fenster.

Wenn Sie von nun an im aktuellen Arbeitsblatt auf Zelle D4 klicken, wird das angegebene Makro sofort ausgelöst.


In Verbindung stehende Artikel:


Die besten Tools für die Office-Produktivität

Kutools for Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%

  • Wiederverwendung: Schnell einfügen komplexe Formeln, Diagramme und alles, was du vorher benutzt hast; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen ohne Daten zu verlieren; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen / Spalten... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Mehr als 300 leistungsstarke Funktionen. Unterstützt Office / Excel 2007-2021 und 365. Unterstützt alle Sprachen. Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation. 30-tägige kostenlose Testversion mit allen Funktionen. 60 Tage Geld-zurück-Garantie.
kte tab 201905

Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten
Kommentare (37)
Noch keine Bewertungen. Bewerten Sie als Erster!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Auslösen oder Ausführen eines Makros durch Klicken auf eine bestimmte Zelle mit VBA-Code konnte dies nicht zum Laufen bringen. Ich habe es auf viele verschiedene Arten versucht, aber es hat nie das erreicht, was versprochen wurde.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Dieser Code funktioniert nur, wenn Sie ihn im Modul "DieseArbeitsmappe" platzieren. Es funktioniert nicht auf einem allgemeinen Modul.
Arbeitsmappenname > Microsoft Excel-Objekte > DieseArbeitsmappe.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Dieser Code funktioniert im Arbeitsblatt-Codemodul. Sie müssen mit der rechten Maustaste auf die Blattregisterkarte klicken und auf „Code anzeigen“ klicken. Dadurch wird das Codemodul nur für dieses Arbeitsblatt geöffnet. Fügen Sie dann den erwähnten Code ein.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Wenn Sie mehrere Makros haben möchten, Zellen, die verschiedene Makros auf derselben Seite ausführen - ist das möglich?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Liebe Simon,
Das folgende VBA-Skript kann Ihnen helfen, verschiedene Makros auszuführen, indem Sie auf Zellen auf derselben Seite klicken.

Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich)
Wenn Target.Count = 1, dann
Wenn Not Intersect(Target, Range("D4")) nichts ist, dann Call MyMacro1
Wenn Not Intersect(Target, Range("D8")) nichts ist, dann Call MyMacro2
Wenn Not Intersect(Target, Range("D10")) nichts ist, dann Call MyMacro3
End If
End Sub

Bitte fügen Sie die Zeile "If Not Intersect(Target, Range("D10")) Is Nothing Then Call MyMacro" hinzu, um weitere Makros auszuführen, indem Sie auf die Zelle klicken. Und ändern Sie die Zellen- und Makronamen im Code entsprechend Ihren Anforderungen.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Bei meinem Excel funktioniert es nicht. Der Code ist richtig?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Camila,
Entschuldigung für die Unannehmlichkeiten. Versuchen Sie den folgenden VBA-Code.

Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich)
xRgArr als Variante dimmen
Dim xFunArr als Variante
Dim xFNum als ganze Zahl
Dim xStr als Zeichenfolge
Dim xRg als Bereich
xRgArr = Array("A1", "D1", "C1") 'Zellen, die zum Auslösen des Makros verwendet werden
xFunArr = Array("Codename1", "Codename2", "Codename3") 'Die entsprechenden Codenamen
Wenn Selection.Count = 1 Then
Für xFNum = 0 nach UBound(xRgArr)
Setze xRg = ActiveSheet.Range(xRgArr(xFNum))
If Not Intersect(Target, xRg) Is Nothing Then
xStr = xFunArr(xFNum)
Anwendung.Run xStr
End If
Weiter
End If
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Das hat perfekt funktioniert und wird mir eine Menge Zeit ersparen - vielen Dank, dass Sie Ihr Wissen geteilt haben - sehr zu schätzen!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Es freut mich, dass ich helfen konnte.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Toll. Es funktioniert gut ... Danke ....
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo.

Ich habe das gut funktioniert, möchte aber eine Bedingung zum Ausführen des Makros hinzufügen. Ich möchte das Makro nur ausführen, wenn die Zelle neben der Zelle, in die ich klicke, einen bestimmten Wert enthält.
zB Wenn ich auf Zelle F6 klicke, möchte ich, dass das Makro ausgeführt wird, wenn Zelle E6 "x" enthält, aber wenn Zelle E6 leer ist, darf das Makro nicht ausgeführt werden.
Hoffe das macht Sinn.
Vielen Dank

Hier ist mein Originalcode ohne die Bedingung:


Option Explizit

Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich)
Wenn Selection.Count = 1 Then
If Not Intersect(Target, Range("F6:F18")) ist Nothing Then
datePick anrufen
End If
End If
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,
Der folgende VBA-Code kann Ihnen helfen, das Problem zu lösen. Bitte versuchen Sie es und danke für Ihren Kommentar.

Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich)
Dim xRg als Bereich
If Not Intersect(Target, Range("F6:F18")) ist Nothing Then
Setze xRg = ActiveSheet.Cells(Target.Row, Target.Column - 1)
If (xRg.Value = "") Or (xRg.Value <> "X") Then Exit Sub
Datepick anrufen
End If
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Danke, aber was ist mit verbundenen Zellen?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Alber,
Der Code funktioniert nicht für verbundene Zellen.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich verwende OpenOffice und habe mit der rechten Maustaste auf die Blattregisterkarte und ausgewählte Ereignisse geklickt und dann dieses Makro aus MyMacros ausgewählt. Ich erhalte jedoch einen Fehler in der folgenden Zeile: If Selection.Count = 1 Then >>> "Basic runtime error, Variable nicht definiert...
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo James,
Der Code funktioniert nur für Microsoft Office Excel. Danke für deinen Kommentar.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Mein vollständiger Code in diesem Makro lautet:


Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich)

Dim val As String
REM val = Range("A2").Wert

Wenn Selection.Count = 1 Then
If Not Intersect(Target, Range("D24")) ist nichts, dann
REM Rufen Sie MyMacro auf
val = Range("D24").Wert
Range("B27").Value = val
End If
End If
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Dieses Thema ist sehr interessant und ich bin interessiert, weiß aber nicht, wo ich es finden kann. Zum Glück erstellen Sie dieses Thema. Ich hoffe, alle helfen mir http://run-3.online
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Excel 2002 (XP): Wenn eine Arbeitsmappe geöffnet wird, indem „Datei“ ausgewählt und „Umschalt“ gedrückt wird, werden Makros in diesem Blatt deaktiviert. Das Problem besteht darin, dass ich das Makro ausführen kann, wenn ich „Extras > Makro > Makros ...“ auswähle wie auch immer, wie zu lösen?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Roger,
Wir haben den Code nicht in Excel 2002 (XP) getestet. Warum nicht die neuere Version von Microsoft Office verwenden? Es wird einfacher für Ihre Arbeit.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
2010 das gleiche Ergebnis.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Warum nicht einfach eine neuere Version verwenden, es wird einfacher sein
https://games.lol/racing/
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Danke, aber wie wäre es mit mehreren Zellen zum Anklicken, um mehrere Makros auszuführen?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,
Versuchen Sie den folgenden VBA-Code.

Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich)
xRgArr als Variante dimmen
Dim xFunArr als Variante
Dim xFNum als ganze Zahl
Dim xStr als Zeichenfolge
Dim xRg als Bereich
xRgArr = Array("A1", "D1", "C1") 'Zellen, die zum Auslösen des Makros verwendet werden
xFunArr = Array("Codename1", "Codename2", "Codename3") 'Die entsprechenden Codenamen
Wenn Selection.Count = 1 Then
Für xFNum = 0 nach UBound(xRgArr)
Setze xRg = ActiveSheet.Range(xRgArr(xFNum))
If Not Intersect(Target, xRg) Is Nothing Then
xStr = xFunArr(xFNum)
Anwendung.Run xStr
End If
Weiter
End If
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Danke für diesen Code. Ist es möglich, dies zum Laufen zu bringen, indem Sie auf eine Zelle klicken, die mit anderen zusammengeführt wird?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo M.Symonds,
Der Code in diesem Artikel kann Ihnen einen Gefallen tun: https://www.extendoffice.com/documents/excel/4354-excel-click-on-cell-to-run-macro.html
Danke für deinen Kommentar.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, ich habe versucht, diesen Code zu verwenden, um ein Einfügemakro auszuführen, kann aber anscheinend nicht herausfinden, wie man das Makro richtig einfügt.

Hier ist mein Original-Marco

Unter einfügen ()
'
'Makro einfügen
'

'
Bereich ("B34"). Wählen Sie
ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:= _
Falsch, NoHTMLFormatting:=True
End Sub


Jede Hilfe ist willkommen
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, vielen Dank für Ihr interessantes Thema. Was ist, wenn ich zum Beispiel auf D4 in Sheet1 klicken und das Ergebnis von Macro in Sheet2!F3 sehen möchte.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Funktioniert nicht mehr.
Worksheet_SelectionChange ist standardmäßig nicht vorhanden. Das heißt, Sie können damit kein Makro auslösen.

Das einzige eingebettete Sub, das Sie verwenden können, wird in der Dropdown-Liste "Arbeitsmappe" referenziert, also ...

Das Einzige, was Sie tun können, ist die Verwendung von Workbook_SheetBeforeDoubleClick. Aber es wird in den Bearbeitungsmodus wechseln (immer noch keine große Sache).
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo CodeKiller.Worksheet_SelectionChange existiert nur im Sheet(Code) Editor. Klicken Sie mit der rechten Maustaste auf die Blattregisterkarte und klicken Sie auf Code anzeigen, um den Blatt(Code)-Editor zu aktivieren.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Es ist wichtig zu betonen, dass das Makro nur im Arbeitsblatt ausgeführt wird.
Diejenigen von uns, die den regulären Visual Basic-Editor verwenden, speichern Makros häufig an anderen Stellen als im aktuellen Arbeitsblatt.
Keiner dieser Codes funktioniert in dieser Situation.
Ich finde diesen Code viel einfacher und er funktioniert sehr gut für mich: 

Private Sub Worksheet_SelectionChange (ByVal Target As Excel.Range)
If Not Intersect(Range("d1"), Target) Is Nothing Then
Rufen Sie aa an
End If
End Sub
Sub aa() ' Geben Sie hier Ihren Code ein
Bereich ("D1").Auswählen
Auswahl.Kopieren
Bereich ("F1").Auswählen
ActiveSheet.PasteEnd Sub
John Wells
jnw.wells@gmail.com
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo John Wells, danke fürs Teilen.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Für diejenigen, die möchten, dass dies für verbundene Zellen funktioniert, ist der schnellste und schmutzigste Weg, Zeile 2 wie folgt zu aktualisieren:
Option Explizit

Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich)
Wenn Selection.Count > 0 Then
If Not Intersect(Target, Range("D4")) ist nichts, dann
Rufen Sie MyMacro an
End If
End If
End SubSelection.Count wird verwendet, um zu bestimmen, ob eine Auswahl getroffen wurde, bevor das verbleibende Makro ausgeführt wird. Wenn Ihre Auswahl aus vier zusammengeführten Zellen besteht, ist Selection.Count gleich 4, und der verbleibende Code wird nie ausgeführt. Sie können Zeile 2 auch auf die genaue Anzahl der zusammengeführten Zellen ändern, aber das führt zu Problemen, wenn Sie dies tun weitere Zellen zusammenführen.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Großartig! Grazie, era una vita che sognavo di poterlo fare, se può essere utile a qualcuno avendo necessità di eseguire più codici su più celle per
aumentare il numero di opzioni basta aggiungere le nuove istruzionisempre sotto la stessa option explizit altrimente ci viene detto che il riferimento al
Arbeitsblatt nicht è univoco. Mi spiego meglio evidentemente su come ho adattato il codice con il mio esempio;

Option Explizit
Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich)
Wenn Selection.Count = 1 Then
Wenn Not Intersect(Target, Range("Y64")) ist dann nichts
Bereich ("Y65:Y78").Auswählen
Bereich ("Y65").Aktivieren
Auswahl.Inhalt löschen
Bereich ("Y65").Auswählen
End If
If Not Intersect(Target, Range("A33")) ist Nothing Then
Bereich ("A33").Auswählen
Auswahl.Kopieren
ActiveWindow.WindowState = xlMinimized
SendKeys "^v"
SendKeys "{BACKSPACE}"
End If
End If
End Sub

Grazie ancora è stata un'autentica meraviglia!

Maximum
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich hatte keine Erwartungen an diesen Titel, aber umso mehr war ich erstaunt. Der Autor hat einen tollen Job gemacht. Ich verbrachte ein paar Minuten damit, die Fakten zu lesen und zu überprüfen. Alles ist sehr klar und verständlich. Ich mag Beiträge, die deine Wissenslücken füllen. Dieser ist von der Art.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,

Kein Encuentro la manera de hacer lo que necesito. Espero de veras que me podáis ayudar.
Necesito que se lance una MACRO al hacer clic en una celda, pero no sé en qué celda va a ser, no lo puedo comparar con (si se ha seleccionado la celda A3, por ejemplo, que se lance la acción) por que por funcionalidades del fichero, las celdas se van a mover de sitio (se han podido insertar, mas o menos filas encima). Necesitaría poder saber qué celda es la que se ha seleccionado.
Hay alguna manera de poder hacer eso?
Vielen Dank im Voraus.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Hola,
Die Zelladresse ist konstant. Alles, was Sie verschieben können, ist der Wert der Zelle.
Die Zelle, die Sie im VBA-Code angegeben haben, ist immer noch die Zelle, die den angegebenen VBA-Code auslöst.
Es sind noch keine Kommentare vorhanden
Hinterlassen Sie Ihre Kommentare
Als Gast posten
×
Bewerte diese Nachricht:
0   Figuren
Vorgeschlagene Standorte

Folgen Sie uns

Copyright © 2009 - www.extendoffice.com. | Alle Rechte vorbehalten. Unterstützt von ExtendOffice. | Sitemap
Microsoft und das Office-Logo sind Marken oder eingetragene Marken der Microsoft Corporation in den USA und / oder anderen Ländern.
Geschützt durch Sectigo SSL