Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

DblClick

DblClick
12.05.2013 00:38:39
Heike
Hallo,
schlage mich ja schon den ganzen Tag tapfer mit meinem Formular, jetzt bin ich aber auf ein weiteres Problem gestoßen. Hoffe sehr, ihr habt eine Lösung für mich.
CMB1 und CMB2 je in einer Frame, da sie unabhängig sind. Wähle ich einen Artikel in CMB1 aus, wird mir in einer ListBox der dazugehörige Kunde angezeigt.
Mit einem Doppelklick in die Listbox (außerhalb der Frames), wird mit folgendem Code der ausgewählte Kunde in die TextBox13 (Frame1) eingefügt.
Das klappt auch, nur, wenn ich einen Artikel über CMB2 auswähle, listet er mir zwar die richtigen Kunden auf aber mit einem Doppelklick werden diese AUCH in Frame1 / TextBox13 eingefügt, das ist blöd, denn der Kunde soll dann in der Textbox16 in Frame2 erscheinen.
Puuuhh, ich hoffe, ich habe mich verständlich ausgedrückt. Hier nun der funktionierende Code für CMB1
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim ssearch As String
If ListBox1.ListCount > 1 Then
ssearch = ListBox1.List(ListBox1.ListIndex, 0)
Set rngID = Columns("N:N").Find(what:=ssearch, lookat:=xlWhole, LookIn:=xlValues)
TextBox13 = ListBox1.List(ListBox1.ListIndex, 0)
End If
ssearch = ""
ListBox1.Clear
End Sub
Danke vielmals im voraus
Ach, zur Info: Artikelliste und Kundenliste sind für beide CMBs identisch.
Gruß
Heike

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

Betreff
Datum
Anwender
Anzeige
AW: DblClick
12.05.2013 09:53:33
ing.grohn
Hallo Heike,
Franz hat mir mal folgendes geschrieben: "Rahmen sind Gift für die Ausführung/Auswertung verschiedener Steuerelement-Ereignisse.Funktional erforderlich sind Rahmen nur zur Zusammenfassung von Optionsschaltflächen in Gruppen."
Ich verwende zur optischen Gestaltung/Gliederung nur noch Label und habe somit (fast) keine Probleme mit der Auswerung der Ereignisse. Vielleicht hilft Dir das!?
Mit freundlichen Grüßen
Albrecht

AW: DblClick
12.05.2013 10:14:21
Gerd
Hallo Heike!
Wähle ich einen Artikel in CMB1 aus....
Mal unterstellt, die beiden CMB sind Comboboxen, dann kannst du im Change-Ereignis dieser beiden eine globlale Variable oder die Tag-Eigenschaft eines Steuerelementes füllen u. zur Fallunterscheidung im Listbox1-DoubleClick abfragen.
Gruß Gerd

Anzeige
AW: DblClick
12.05.2013 13:12:02
Heike
Hallo ihr Zwei,
Albrecht, also besser gar nicht mit Frames arbeiten? Sondern eine große Userform und dort alles rein?
Gerd, ja CMB sind ComboBoxen :-) danke für deine Tipp, nur weiß ich leider nicht, was du meinst. Sorry.
Den DbClick Code habe ich hier aus dem Forum und etwas angepasst. Bin leider keine Programmiererin. Ich dachte, vielleicht ist es in diesem Code möglich, eine Art Wenn-Abfrage einzubauen: Wenn in CMB1 was steht, dann fülle TB13, sonst TB16.
Denn die Listbox wird nur gefüllt, wenn in einer der beiden CMBs was ausgewählt wurde. Auswahl beider gleichzeitig ist allerdings nicht möglich!
Vielen Dank für eure Unterstützung
Gruß
Heike

Anzeige
AW: DblClick
12.05.2013 13:33:13
ing.grohn
Hallo Heike,
anfangs hatte ich alles mit Rahmen untergliedert und mir nen haufen Probleme eingehandelt. Dies führte dazu, dass ich überall Variablen hatte, die über den Zustand informierten und weniger die Ereignisse als Steuerungselement dienten.
Jetzt habe ich keine Rahmen mehr und Frage die Ereignisse ab. In einer Userform kann man über 400 Elemente gezielt ansprechen/abfragen.
Vielleicht hilfts Dir
Mit freundlichen Grüßen
Albrecht

AW: DblClick
12.05.2013 14:10:39
Gerd
Hallo Heike,
das Füllen des ListBox1-Tags ist nur exemplarisch. Nimm hierfür deinen Ereigniscode mit dem von CMB1 oder CMB2 aus Listbox1 gefüllt oder angesteuert wird.
Private Sub CMB1_Change()
ListBox1.Tag = "TextBox13"
End Sub
Private Sub CMB1_Change()
ListBox1.Tag = "TextBox16"
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim ssearch As String
If ListBox1.ListCount > 1 Then
ssearch = ListBox1.List(ListBox1.ListIndex, 0)
Set rngID = Columns("N:N").Find(what:=ssearch, lookat:=xlWhole, LookIn:=xlValues)
Controls(ListBox1.Tag) = ListBox1.List(ListBox1.ListIndex, 0)
If ListBox1.Tag = "TextBox13" Then TextBox16 = "" Else TextBox13 = ""
End If
ssearch = ""
ListBox1.Clear
End Sub
Gruß Gerd

Anzeige
*passt schon prima ...
12.05.2013 16:28:11
Heike
Hallo Gerd,
vielen Dank für den Code. Habe ihn eingebunden und klappt super.
Habe ihn erweitert, und zwar soll bei Auswahl des Kunden, in die TB11 der Preis eingetragen werden.
Das klappt auch bei CMB1:
Controls(ListBox1.Tag) = ListBox1.List(ListBox1.ListIndex, 0)
TextBox11.Text = rngID.Offset(0, -7).Value    'Spalte N -7 ergibt die Spalte Preis
If ListBox1.Tag = "TextBox13" Then TextBox14 = "" Else TextBox13 = ""
End If

Jetz habe ich natürlich wieder das Problem mit CMB2 :-( wenn ich dort den Kunden anklicke, soll der Preis in TB8 - und das funktioniert natürlich nicht. Fehlt wieder eine IF-Then?
Würdest du mir noch einmal helfen? Wäre toll und vielen Dank!
Gruß
Heike

Anzeige
Habs gelöst :-)
14.05.2013 22:57:37
Heike
Hallo Gerd,
hab es jetzt doch hingekriegt, und zwar mit folgender Zeile:
If TextBox14 = "" Then TextBox11.Text = rngID.Offset(0, -7).Value _
Else TextBox8.Text = rngID.Offset(0, -7).Value
Gruß
Heike

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige