Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Listbox Dbl Click Komentar einfügen
#11
Hallöchen,

nicht gleich aufgeben. So funktioniert ein Rechtsklick über den Umweg MouseDown. Dieses Ereignis holt ja u.a. den Button und die Position des Mauszeigers. Damit kann man ermitteln, über welchem Eintrag die Maus in dem Moment steht.

Der Doppelklick ist ggf. nicht gerade glücklich, wenn dadurch die Selektion geändert wird.

Zum Test mal eine Userform mit einer Listbox erstellen und der Listbox einen Bereich mit Daten zuweisen, z.B. Tabelle1!A1:A5 wenn da was steht ...

Code:
Private sngLBRHeight  As Single
Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Variablendeklarationen
'Long
Dim lListRow&
'Wenn der rechte Button gedrueckt wurde, dann
If Button = 2 Then
  'Eintragnummer auf Basis der Hoehe der Listbox und der Y-Position des Mauszeigers ermitteln
  lListRow = (Y / sngLBRHeight) + ListBox1.TopIndex - 1
  'Wenn die Eintragnummer groesser als die Anzahl der Eintraege ist, auf letzten Eintrag setzen
  If lListRow > (ListBox1.ListCount - 1) Then lListRow = ListBox1.ListCount - 1
  'Ausgabe des gefundenen Eintrags
  MsgBox ListBox1.List(lListRow)
'Ende Wenn der rechte Button gedrueckt wurde, dann
End If
End Sub

Private Sub UserForm_Activate()
'Variablendeklarationen
'Single
Dim sngOldHeight!
'Wenn die Hoehe eines Eintrags noch nicht ermittelt wurde, dann
If sngLBRHeight = 0 Then
  'Mit der Listbox1
  With ListBox1
    'Topindex auf letzten Eintrag setzen
    .TopIndex = .ListCount - 1
    'Hoehe ermitteln
    sngOldHeight = .Height
    'Solange der Topindex 0 ist
    Do While .TopIndex = 0
      'Hoehe um 10 reduzieren
      .Height = .Height - 10
      'Topindex auf letzten Eintrag setzen
      .TopIndex = .ListCount - 1
    'Ende Solange der Topindex 0 ist
    Loop
    'Hoehe eines Eintrags berechnen
    sngLBRHeight = .Height / (.ListCount - .TopIndex + 1)
    'Hoehe auf alten Wert zuruecksetzen
    .Height = sngOldHeight
    'Topindex auf 0 setzen
    .TopIndex = 0
  'Ende Mit der Listbox1
  End With
'Ende Wenn die Hoehe eines Eintrags noch nicht ermittelt wurde, dann
End If
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste