Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1904to1908
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

Listbox

Listbox
16.11.2022 11:35:24
Dani
Hallo zusammen
Das letzte mal habt Ihr mir sehr geholfen, dafür möchte ich mich an dieser Stelle noch bedanken.
Da brauche ich mal wieder eure Hilfe.
Ich habe ein UF erstellt mit Suchfunktion und einer Listbox
Nun wo ich scheitere
Ich will in der Listbox per Doppelklick die Daten in die nächste freie Zelle schreiben.
Das heißt nur im Bereich Range b10:D100
Ich habe mal mit folgenden Code versucht, leider kein Erfolg
Nun die Frage an euch wie muss ich den Code schreiben das es funktioniert
Worksheets("Personal").Activate
Dim Zeile As Integer
Zeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
ActiveSheet.Cells(Zeile, 6).Value = UserForm1.ListBox1.Value
ActiveSheet.Cells(Zeile, 7).Value = Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2)
ActiveSheet.Cells(Zeile, 8).Value = Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3)
Ich bedanke mich jetzt schon für eure wert volle Hilfe
Freundlicher Gruß
Dani

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox
16.11.2022 11:42:39
onur
Und wie sollen wir irgend einen Code ohne die Date testen? Selber nachbauen?
AW: Listbox
16.11.2022 12:07:00
Dani
Hallo
Besten Dank für die Prompte Antwort
Ich muss mich Korrigieren der Code funktioniert zum teil.
Worksheets("Personal").Activate
Dim Zeile As Integer
Zeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
ActiveSheet.Cells(Zeile, 6).Value = UserForm1.ListBox1.Value
ActiveSheet.Cells(Zeile, 7).Value = Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2)
ActiveSheet.Cells(Zeile, 8).Value = Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3)
Wenn ich diesen Code ausführe schreibt er mir nur in eine Zelle jedoch nicht fortlaufend in die nächste Zelle wie muss ich diesen Code ändern damit die Wert fort laufend geschrieben werden kann. Und dies sollte nur im Bereich Range b10:D100 sein.
Besten Dank für eure Hilfe
Gruß
Danui
Anzeige
AW: Listbox
16.11.2022 11:51:58
Rudi
Hallo,

Zeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
With ListBox1
ActiveSheet.Cells(Zeile, 6).Value = .Column(0)
ActiveSheet.Cells(Zeile, 7).Value = .Column(1)
ActiveSheet.Cells(Zeile, 8).Value = .Column(2)
End With
Gruß
Rudi
AW: Listbox
16.11.2022 12:18:07
Dani
Hallo Rudi
Besten Dank für deine Antwort habe dein Code getestet. Genau das gleiche Ergebnis wie beim meine Code
Es wird nur in Zelle Range 564 geschrieben jedoch nicht fortlaufend.
Hier mal die Datei
https://www.herber.de/bbs/user/156206.xlsm
Besten Dank und Gruß
Dani
Anzeige
AW: Listbox
16.11.2022 12:42:43
onur
Soll ich dir mal deinen eigenen "Code" erklären?
Erste leere Zelle (EFZeile) in Spalte A wird ermittelt.
Die Werte aus der Listbox werden in die leere Zeile EFZeile in Spalten F, G, H und K geschrieben, da n null ist und null bleibt. n wird um 1 erhöht.
Was soll der Blödsinn mit n?
Beim nächsten mal ist n wieder null und EFZeile immer noch die selbe, da ja nix in Spalte A geschrieben wurde.
AW: Listbox
16.11.2022 13:22:46
Dani
Hallo
Da hast du recht es ist ein Blösin was ich da aus probiert habe.
Ich bedanke mich sehr für die ausführliche Information.
Freundlicher Gruß
Dani
AW: Listbox
16.11.2022 13:24:53
onur
Lass auch alles mit dem n weg - ist völlig überflüssig, da die erste freie Zeile sowieso immer wieder neu ermittelt wird.
Anzeige
AW: Listbox
16.11.2022 12:48:28
Rudi
Hallo,
Es wird nur in Zelle Range 564 geschrieben jedoch nicht fortlaufend.
du ermittelst die freie Zeile ja auch in Spalte A!!!
Deine Schleife über die LBx mit der Abfrage Selected(i) =True ist überflüssig, da die LBx keine Mehfachauswahl zulässt.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim EFZeile As Long
EFZeile = Cells(Rows.Count, 6).End(xlUp).Row + 1
With UserForm1.ListBox1
'Erste Spalte
Range("f" & EFZeile) = .Column(0)
'Zweite Spalte
Range("g" & EFZeile) = .Column(1)
'Dritte Spalte
Range("h" & EFZeile) = .Column(2)
'Vierte Spalte
Range("K" & EFZeile) = .Column(3)
End With
End Sub
Gruß
Rudi
Anzeige
AW: Listbox
16.11.2022 13:26:48
Dani
Hallo Ruedi
Auch dir Besten Dank für die Antwort und Erklärung.
Dein Code ist genau das was ich gesucht habe. Mit der Bitte wie spreche ich eine bestimmte Tabelle an damit die Daten eingefügt werden.
Noch mals Besten Dank und Gruß
Dani
AW: Listbox
16.11.2022 13:29:07
Rudi
Worksheets("DeinBlattName").Range("F" & EFZeile)=....
AW: Listbox
16.11.2022 13:48:52
Dani
Hallo Ruedi
wenn ich es richtig verstanden habe ist es so gemeint wenn ja dann erhalte ich dann eine Fehler Meldung.
Worksheets("Personal").Range("F" & EFZeile) = Cells(Rows.Count, 6).End(xlUp).Row + 1
Gruß
AW: Listbox
16.11.2022 14:03:04
Rudi
mal vollständig:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim EFZeile As Long
Dim wks As Worksheet
Set wks = Worksheets("DeinBlattName")
EFZeile = wks.Cells(Rows.Count, 6).End(xlUp).Row + 1
With UserForm1.ListBox1
'Erste Spalte
wks.Cells(EFZeile, 6) = .Column(0)
'Zweite Spalte
wks.Cells(EFZeile, 7) = .Column(1)
'Dritte Spalte
wks.Cells(EFZeile, 8) = .Column(2)
'Vierte Spalte
wks.Cells(EFZeile, 11) = .Column(3)
End With
End Sub
Gruß
Rudi
Anzeige
AW: Listbox
16.11.2022 19:17:25
Dani
Hallo Rudi
Super Toll Danke dir 1000 mal es funktioniert, jetzt noch die letzte bitte und Hilfe die Daten sollten im
Range B11 -D60 eingetragen werden wie muss ich den Code ändern?
Gruß
Dani
AW: Listbox
17.11.2022 09:51:03
Rudi
Hallo,
du solltest mal versuchen zu verstehen, was der Code macht. So schwer ist das nicht.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim EFZeile As Long
Dim wks As Worksheet
Set wks = Worksheets("DeinBlattName")
EFZeile = wks.Cells(Rows.Count, 6).End(xlUp).Row + 1
EFZeile = Application.Max(EFZeile, 11)
With UserForm1.ListBox1
'Erste Spalte
wks.Cells(EFZeile, 2) = .Column(0)
'Zweite Spalte
wks.Cells(EFZeile, 3) = .Column(1)
'Dritte Spalte
wks.Cells(EFZeile, 4) = .Column(2)
End With
End Sub
Alternativ mit Schleife und Fehlermeldung:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim EFZeile As Long, iCOL As Long
Dim wks As Worksheet
Set wks = Worksheets("DeinBlattName")
EFZeile = wks.Cells(Rows.Count, 6).End(xlUp).Row + 1
EFZeile = Application.Max(EFZeile, 11)
If EFZeile > 60 Then
MsgBox "Der Bereich ist voll", , "Gebe bekannt..."
Else
With UserForm1.ListBox1
For iCOL = 0 To 2
wks.Cells(EFZeile, iCOL + 2) = .Column(iCOL)
Next iCOL
End With
End If
End Sub
Gruß
Rudi
Anzeige
AW: Listbox
17.11.2022 10:36:41
Dani
Hallo Rudi
Vielen lieben Dank für deine zwei Lösungscods, kar ich muss noch viel lernen und vor allem die Codes auch verstehen
Beste Grüße
Dani

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige