09.09.2017, 14:59 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2017, 17:39 von Glausius.)
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.
09.09.2017, 18:14 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2017, 18:14 von michel34497.)
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
09.09.2017, 19:11 (Dieser Beitrag wurde zuletzt bearbeitet: 10.09.2017, 00:38 von Kuwer.
Bearbeitungsgrund: Code ergänzt
)
Hallo Michael,
hier mal exemplarisch DragandDrop für ListBox4 nach TextBox4:
PrivateSub ListBox4_MouseMove(ByVal Button AsInteger, ByVal Shift AsInteger, ByVal X AsSingle, ByVal Y AsSingle) Dim MyDataObject As DataObject If Button = 1 Then Set MyDataObject = New DataObject MyDataObject.SetText ListBox4.Value MyDataObject.StartDrag EndIf EndSub
PrivateSub TextBox4_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, ByVal X AsSingle, ByVal Y AsSingle, ByVal Effect As MSForms.ReturnEffect, ByVal Shift AsInteger) TextBox4.Value = "" EndSub
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?
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)