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

Modul ausführen, wenn Zelle angeklickt wird

Forumthread: Modul ausführen, wenn Zelle angeklickt wird

Modul ausführen, wenn Zelle angeklickt wird
26.09.2016 21:02:32
Christof
Hallo zusammen,
ich stoße gerade mal wieder an meine Grenzen.
Ich würde gern ein Userform (Bsp. Userform1) ausführen lassen, wenn eine Zelle (D4) eines bestimmten Zellbereiches (D1:D10) angeklickt wird.
Ich habe etwas gefunden, komme damit aber nicht wirklich weiter:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Das Ergebnis soll dann in die entsprechende Zelle geschrieben werden, was ich schon hinbekommen habe.
Vorab schon einmal Vielen Dank für eure Hilfe
Gruß
Christof
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Modul ausführen, wenn Zelle angeklickt wird
26.09.2016 21:33:31
Daniel
Hi
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
if not Intersect(Target, Range("D1:D10") is nothing then Userform1.Show
End Sub
Gruß Daniel
AW: Syntaxfehler :-) ) o.T.
26.09.2016 21:54:10
Gerd
.
AW: Modul ausführen, wenn Zelle angeklickt wird
26.09.2016 21:54:54
Christof
Vielen Dank,
hatte das auch schon so geschrieben, aber irgendwie hat es nicht geklappt...
geht das ganze auch für mehrere Bereiche?
Bsp. D1:D10, E1:E10?
Gruß
Christof
Anzeige
AW: Modul ausführen, wenn Zelle angeklickt wird
26.09.2016 22:03:17
Gerd
Hallo Christof,
beachte die doppelte schließende Klammer nach dem Range.
Im Beispiel hätte man D1:E10 zusammenfassen können.

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("D1:D10, E1:E10")) Is Nothing Then UserForm1.Show
End Sub

Gruß Gerd
Anzeige
AW: Modul ausführen, wenn Zelle angeklickt wird
26.09.2016 22:15:24
Christof
Hallo Gerd,
ja, ist mir gerade auch schon aufgefallen,
hätte G1:G10 nehmen sollen.
Vielen Dank für die Hilfe, manchmal muss man einen "Tritt" bekommen, um die Lösung zu finden.
Ich hatte was mit
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim RaBereich As Range
If CallByName(Selection, IIf(Val( _
Application.Version) > 11, "CountLarge", "Count"), VbGet) = 1 Then
Set RaBereich = Range("Ag18:Ag77 , ap18:ap77 , Bf18:Bf77 , Ax18:Ax77 , Bn18:Bn77 , o88: _
o147 ")
If Not Intersect(Target, RaBereich) Is Nothing Then
Then UserForm1.Show
End Sub

gefunden, konnte es aber nicht zuweisen (fehlendes Wissen)
Vielen Dank, werde es morgen ausprobieren.
Gruß
Christof
Anzeige
Vielen Dank Gerd
27.09.2016 21:32:41
Christof
Hat alles geklappt und läuft wie geplant.
Gruß
Christof
Vielen Dank Gerd
27.09.2016 21:32:42
Christof
Hat alles geklappt und läuft wie geplant.
Gruß
Christof
;
Anzeige

Infobox / Tutorial

Modul ausführen, wenn Zelle angeklickt wird


Schritt-für-Schritt-Anleitung

Um ein Userform (z.B. Userform1) automatisch anzuzeigen, wenn eine Zelle in einem bestimmten Bereich (z.B. D1:D10) angeklickt wird, kannst Du den folgenden VBA-Code verwenden:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Doppelklicke auf das Arbeitsblatt, in dem Du die Funktion implementieren möchtest (z.B. „Tabelle1“).

  3. Füge den folgenden Code in das Codefenster ein:

    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
       If Not Intersect(Target, Range("D1:D10")) Is Nothing Then
           UserForm1.Show
       End If
    End Sub
  4. Schließe den VBA-Editor und teste die Funktion, indem Du auf eine Zelle im Bereich D1:D10 klickst.


Häufige Fehler und Lösungen

  • Syntaxfehler: Achte darauf, dass die Klammern und die Syntax korrekt sind. Ein häufiger Fehler ist das Fehlen einer schließenden Klammer. Der korrekte Code für mehrere Bereiche ist:

    If Not Intersect(Target, Range("D1:D10, E1:E10")) Is Nothing Then
       UserForm1.Show
    End If
  • Userform wird nicht angezeigt: Stelle sicher, dass das Userform korrekt erstellt wurde und der Name (UserForm1) genau übereinstimmt.


Alternative Methoden

Wenn Du die Funktion auch für mehrere Zellbereiche erweitern möchtest, kannst Du den Code wie folgt anpassen:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Dim RaBereich As Range
    Set RaBereich = Range("D1:D10, E1:E10, G1:G10")
    If Not Intersect(Target, RaBereich) Is Nothing Then
        UserForm1.Show
    End If
End Sub

Du kannst die Bereiche ganz einfach anpassen, indem Du die gewünschten Zellbereiche in der Range-Funktion angibst.


Praktische Beispiele

Hier sind einige Beispiele, wie Du den Code anpassen kannst:

  1. Zellen in mehreren Spalten: Wenn Du UserForm1 anzeigen möchtest, wenn Du auf Zellen in den Bereichen D1:D10 und E1:E10 klickst, verwende diesen Code:

    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
       If Not Intersect(Target, Range("D1:D10, E1:E10")) Is Nothing Then
           UserForm1.Show
       End If
    End Sub
  2. Erweiterte Bereiche: Wenn Du mehrere nicht zusammenhängende Bereiche kombinieren möchtest, kannst Du Folgendes tun:

    Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
       Dim RaBereich As Range
       Set RaBereich = Range("A1:A10, C1:C10, E1:E10")
       If Not Intersect(Target, RaBereich) Is Nothing Then
           UserForm1.Show
       End If
    End Sub

Tipps für Profis

  • Verwendung von Variablen: Du kannst die Zellbereiche in einer Variablen speichern, um den Code lesbarer zu machen und Wartung zu erleichtern.

  • Optimierung: Wenn Du viele Bereiche abfragst, kann es sinnvoll sein, den Code so zu optimieren, dass die Performance nicht leidet.

  • Fehlerbehandlung: Füge eine Fehlerbehandlungsroutine hinzu, um mögliche Laufzeitfehler abzufangen, und stelle sicher, dass Deine Anwendung stabil bleibt.


FAQ: Häufige Fragen

1. Was mache ich, wenn mein Userform nicht angezeigt wird?
Überprüfe, ob der Name des Userforms im Code korrekt ist und ob das Userform auch tatsächlich erstellt wurde.

2. Kann ich diese Funktion auch in Excel Online verwenden?
Leider ist VBA in Excel Online nicht verfügbar, daher funktioniert dieser Code nur in der Desktop-Version von Excel.

3. Wie kann ich die Zellen markieren, wenn das Userform angezeigt wird?
Du kannst den Code erweitern, um die Zelle, die angeklickt wurde, zu formatieren oder hervorzuheben, indem Du beispielsweise die Hintergrundfarbe änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige