Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Worksheet_BeforeDoubleClick

Forumthread: Worksheet_BeforeDoubleClick

Worksheet_BeforeDoubleClick
04.12.2004 17:19:43
Jens_Pu
Hallo Excelfreunde,
in einer Tabelle habe ich mit mit dem Worksheet_BeforeDoubleClick Ereignis eine recht umfangreiche Eingabeerleichterung geschaffen.


      
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
  
Dim letzteZeile As Integer
  
If Target.Row > 8 Then
  
Select Case Target.Column
    
Case 1 'NN
      'Mach was
    Case 8 'Status
      'Mach was anderes
    Case 9 'Infoart
      'Noch was anderes
  End Select
  
End If
End Sub 


Bisher prüfe ich immer die Spalte von Target.
Wie kann ich es machen, wenn ich nicht die absolute Spaltennummer ín der Case-Abfrage verwenden möchte, sondern eine banamte Zelle in der jeweiligen Spalte?
In Zeile 8 steht immer die Überschrift der Spalte und dieser Zelle ist auch immer der entsprechende Name zugewiesen. Z.B. NN, Status, Infoart.
Dann könnte ich nämlich meine Spalten beliebig verschieben, bzw. welche einfügen, ohne jedesmal meine Ereignisprocedure anpassen zu müssen.
Gruß Jens
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_BeforeDoubleClick
K.Rola
Hallo,
hab ich das richtig verstanden, dass, egal in welche Zelle der Spalte(ab Zeile 9)
du doppelklickst, der Code ausgeführt werden soll?
Gruß K.Rola
Ja, genau so. o.T.
04.12.2004 21:59:09
Jens_Pu
AW: Worksheet_BeforeDoubleClick
04.12.2004 18:23:05
Josef
Hallo Jens!
Das ginge zB. so:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row > 8 Then
Select Case Target.Column
Case Range("NN").Column
MsgBox "In der Spalte von ""NN"" !"
Case Range("NM").Column
MsgBox "In der Spalte von ""NM"" !"
Case Range("NX").Column
MsgBox "In der Spalte von ""NX"" !"
Case Else
End Select
End If
End Sub

Gruß Sepp
Anzeige
AW: Worksheet_BeforeDoubleClick
04.12.2004 22:05:16
Jens_Pu
Hallo Sepp,
ja, genau so klappt es z.B.
Danke.
Gruß Jens
AW: Worksheet_BeforeDoubleClick
Klaus
Hallo Jens,
kann es sein, dass du sowas gemeint hast? Hier kannst du zwischen den angegeben Spalten zusätzliche Spalten einfügen oder auch löschen, die richtige Spalte wird trotzdem noch erkannt:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) Dim letzteZeile As Integer, i As Integer Dim Ueberschrift(2) '0 - 2 For i = 1 To 256 Select Case Cells(8, i) Case "NN": Ueberschrift(0) = i Case "Status": Ueberschrift(1) = i Case "Infoart": Ueberschrift(2) = i 'hier einfach erweitern, mit jeder Erweiterung 'die Zahl bei der Variablen und bei 'Dim Ueberschrift(2) um eins erhöhen! End Select Next i If Target.Row > 8 Then Select Case Target.Column Case Ueberschrift(0) 'NN 'Mach was MsgBox "NN" Case Ueberschrift(1) 'Status 'Mach was anderes MsgBox "Status" Case Ueberschrift(2) 'Infoart 'Noch was anderes MsgBox "Infoart" End Select End If End Sub
Gruß Klaus
Anzeige
AW: Worksheet_BeforeDoubleClick
04.12.2004 22:08:04
Jens_Pu
Hallo Klaus,
auch Dein Ansatz hat was...
Das werde ich mir morgen noch mal genauer ansehen.
Danke.
Gruß Jens
;
Anzeige

Infobox / Tutorial

Verwendung von Worksheet_BeforeDoubleClick in Excel VBA


Schritt-für-Schritt-Anleitung

Um das Worksheet_BeforeDoubleClick Ereignis in Excel VBA zu nutzen, gehe wie folgt vor:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.
  2. Füge einen neuen Modul ein:

    • Klicke mit der rechten Maustaste auf das Projekt, wähle Einfügen und dann Modul.
  3. Füge den Code ein:

    • Kopiere den folgenden Code in das Modul:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       If Target.Row > 8 Then
           Select Case Target.Column
               Case Range("NN").Column
                   MsgBox "In der Spalte von 'NN'!"
               Case Range("NM").Column
                   MsgBox "In der Spalte von 'NM'!"
               Case Range("NX").Column
                   MsgBox "In der Spalte von 'NX'!"
           End Select
       End If
    End Sub
  4. Anpassung an deine Bedürfnisse:

    • Ändere die Spaltenbezeichnungen im Select Case nach Bedarf.
  5. Teste den Code:

    • Gehe zurück zu Excel und doppelklicke auf die Zellen in den entsprechenden Spalten.

Häufige Fehler und Lösungen

  • Fehler: Der Code wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblatt-Modul eingefügt wurde. Du kannst das Modul finden, indem du im Projektfenster auf das entsprechende Arbeitsblatt doppelklickst.
  • Fehler: Die MsgBox zeigt nicht die korrekte Spalte an.

    • Lösung: Überprüfe die Namen der Spaltenüberschriften, um sicherzustellen, dass sie korrekt im Code angegeben sind.

Alternative Methoden

Eine alternative Methode zur Verwendung von Worksheet_BeforeDoubleClick ist die Verwendung von Arrays, um die Spaltenüberschriften zu speichern und zu vergleichen. Hier ein Beispiel:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim Ueberschrift(2) As Integer
    Dim i As Integer

    For i = 1 To 256
        Select Case Cells(8, i).Value
            Case "NN": Ueberschrift(0) = i
            Case "Status": Ueberschrift(1) = i
            Case "Infoart": Ueberschrift(2) = i
        End Select
    Next i

    If Target.Row > 8 Then
        Select Case Target.Column
            Case Ueberschrift(0)
                MsgBox "NN"
            Case Ueberschrift(1)
                MsgBox "Status"
            Case Ueberschrift(2)
                MsgBox "Infoart"
        End Select
    End If
End Sub

Diese Methode ermöglicht es dir, zusätzliche Spalten einzufügen, ohne dass der Code geändert werden muss.


Praktische Beispiele

Hier ist ein Beispiel, wie du den Worksheet_BeforeDoubleClick in einer realen Anwendung nutzen kannst:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Row > 8 Then
        Select Case Cells(8, Target.Column).Value
            Case "NN"
                MsgBox "Bearbeite die Daten in NN"
            Case "Status"
                MsgBox "Status bearbeiten"
            Case "Infoart"
                MsgBox "Infoart anpassen"
        End Select
        Cancel = True 'Verhindert die Standard-Doppelklick-Aktion
    End If
End Sub

In diesem Beispiel wird eine MsgBox angezeigt, wenn du eine Zelle in den angegebenen Spalten doppelklickst.


Tipps für Profis

  • Erweiterbarkeit: Wenn du oft neue Spalten hinzufügst, überlege, die Spaltenüberschriften in eine separate Liste zu speichern, um den Code leichter zu pflegen.
  • Fehlerbehandlung: Füge eine Fehlerbehandlung hinzu, um unerwartete Probleme zu vermeiden, z.B. wenn eine Zelle leer ist.
  • Optimierung: Verwende Application.ScreenUpdating = False, um das Flackern des Bildschirms während der Ausführung des Codes zu minimieren.

FAQ: Häufige Fragen

1. Wie kann ich den Standard-Doppelklick in Excel deaktivieren?
Um den Standard-Doppelklick zu deaktivieren, setze Cancel = True im Worksheet_BeforeDoubleClick Code.

2. Kann ich mehrere Blätter gleichzeitig bearbeiten?
Ja, du musst jedoch den Code in jedes Arbeitsblatt einfügen, wo das Ereignis verwendet werden soll.

3. Was ist der Unterschied zwischen ByVal und ByRef in VBA?
ByVal übergibt eine Kopie des Wertes, während ByRef eine Referenz auf den ursprünglichen Wert übergibt, sodass Änderungen am Wert auch den ursprünglichen Wert beeinflussen können.

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