kann man ein Makro starten, wenn man z.B. in eine Zelle im Bereich B15:B20 clickt? (Ohne dass man etwas eingeben muss)
Gruss Peter
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B15:B20")) Is Nothing Then
MsgBox "Zelle im Bereich angeklickt"
'statt der MsgBox hier dein Code
End If
End Sub
Um ein Makro auszuführen, wenn Du auf eine Zelle im Bereich B15:B20 klickst, kannst Du den folgenden VBA-Code verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne Excel und gehe zu dem Arbeitsblatt, in dem Du das Makro ausführen möchtest.
Klicke mit der rechten Maustaste auf das Tabellenregister und wähle „Code anzeigen“.
Füge den folgenden Code in das Modul ein:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("B15:B20")) Is Nothing Then
MsgBox "Zelle im Bereich angeklickt"
' Statt der MsgBox hier dein Makro aufrufen
End If
End Sub
Schließe das VBA-Fenster und teste es, indem Du auf eine Zelle im angegebenen Bereich klickst.
Mit diesem Worksheet_SelectionChange-Ereignis wird das Makro automatisch ausgeführt, wenn Du eine Zelle im definierten Bereich anklickst.
Fehler 1: Das Makro wird nicht ausgeführt, wenn ich auf die Zelle klicke.
Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblatt-Modul eingefügt wurde. Du solltest den Code im Modul des Arbeitsblatts platzieren, auf dem Du das Makro ausführen möchtest.
Fehler 2: Ich sehe die MsgBox nicht, wenn ich auf die Zelle klicke.
Lösung: Überprüfe, ob die Zelle im Bereich B15:B20 liegt. Wenn Du andere Zellen klickst, wird das Makro nicht aktiviert.
Falls Du eine andere Methode bevorzugst, um ein Makro bei einem Klick auszuführen, kannst Du auch ein Rechteck über den Zellenbereich zeichnen und dieses mit dem Makro verknüpfen:
Diese Methode ist nützlich, wenn Du mehrere Makros für verschiedene Zellen verwenden möchtest.
Beispiel für ein einfaches Makro:
Wenn Du den MsgBox-Befehl durch ein anderes Makro ersetzen möchtest, kannst Du dies tun. Zum Beispiel:
' Hier dein Makro-Code
Call MeinMakro
Beispiel für Datenverarbeitung:
Wenn Du beim Klick auf eine Zelle Daten verarbeiten möchtest, könnte der Code so aussehen:
If Not Intersect(Target, Range("B15:B20")) Is Nothing Then
' Daten verarbeiten
Worksheets("Daten").Range("A1").Value = Target.Value
End If
Application.ScreenUpdating-Option, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren, um die Leistung zu verbessern.1. Wie kann ich mehrere Bereiche für das Makro festlegen?
Du kannst mehrere Bereiche im If-Befehl definieren. Zum Beispiel:
If Not Intersect(Target, Union(Range("B15:B20"), Range("C15:C20"))) Is Nothing Then
2. Was kann ich tun, wenn ich ein Makro ausführen möchte, wenn ich eine Zelle in einer anderen Tabelle klicke?
Das ist nicht direkt möglich mit Worksheet_SelectionChange. Du kannst jedoch ein Button-Objekt verwenden, um ein Makro auszulösen, das in einer anderen Tabelle definiert ist.