drag&drop von ListBox in TextBox
#1
Hallo Experten!
Ich habe da mal eine Herausforderung an alle.
Komme einfach nicht weiter, möchte gerne mit drag&drop Werte aus ListBoxen in Textboxen befüllen.
In meiner Userform sind 32 Textboxen alle noch von TextBox1 bis TextBox32 durch nummeriert und 4 ListBoxen genauso.
Mit CommadButton4 (Datensatz bearbeiten) wird alles aufgerufen. Dann kann man in der ListBox1 etwas auswählen, die Werte aus dem Tabellenblatt werden in die TextBoxen und den ListBoxen 2&3 eingetragen. in ListBox4 wird so eingetragen wie die Textboxen 4-8/21-24 eigentlich aussehen sollten, wenn alles richtig ist.

Stimmt der Datensatz nicht mit den Vorgaben überein so will ich in bearbeiten.

Damit ncht alles weg ist habe ich die Listboxen2&3 angelegt.

Ich möchte jetzt gerne Werte aus der ListBox4 in die TextBoxen4-8/21-24 mit drag&drop reinziehen.
Dann die vorhandenen Werte aus der ListBox3 in die TextBoxen 12-16/29-32 mit drag&drop reinziehen.

Ist dies möglich?


Wer kann mir weiter helfen?


Angehängte Dateien
.xlsm   dragdropListTextbox.xlsm (Größe: 269,92 KB / Downloads: 15)
mfg
Michael
:98:

WIN 10  Office 2019
Top
#2
Hallo Michael,

das "reinziehen" dürfte nicht funktionieren, du musst schon die entsprechenden Schritte entsprechend programmieren.
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#3
Hallo!
Danke für deine Antwort!
Nachfragen:
1. Geht das was ich möchte nicht überhaubtnicht?
2. Wenn so was programmiert werden muss stellt sich die frage für mich WIE?
3: Wie müssen dann die Schritte aussehen?

Ich habe keinen ansatz, wie mann das umsetzten kann
mfg
Michael
:98:

WIN 10  Office 2019
Top
#4
Hallo Michael,

hier mal exemplarisch DragandDrop für ListBox4 nach TextBox4:

Private Sub ListBox4_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
 Dim MyDataObject As DataObject
 If Button = 1 Then
   Set MyDataObject = New DataObject
   MyDataObject.SetText ListBox4.Value
   MyDataObject.StartDrag
 End If
End Sub

Private Sub TextBox4_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
 TextBox4.Value = ""
End Sub

Code eingefügt mit: Excel Code Jeanie

Das TextBox4_BeforeDropOrPaste kann auch weggelassen werden. Hier wird es nur dafür genutzt, dass nur der letzte Drop stehen bleibt.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • michel34497
Top
#5
Hallo Uwe!
Danke für den Tip.
Sorry das ich erst jetzt antworte!

Ich hab aber noch eine frage?

Kann man den folgenden Code so ab ändern das dieser für alle 32 Textboxen funktioniert

Code:
Private Sub TextBox4_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)
TextBox4.Value = ""
End Sub
 oder muss man diese Zeilen für alle 32 TextBoxen schreiben?
mfg
Michael
:98:

WIN 10  Office 2019
Top
#6
Hallo Michel,

so wie es jetzt alles erstellt ist, brauchst Du den Code für jede TextBox.
Die Alternative wäre nur, wenn Du die TextBoxen per Code erzeugst - Stichwort Klassenprogrammierung. Dann kannst Du für die dadurch erzeugten Boxen auch gemeinsame Aktionen / Ereignisse verwenden.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


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