Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1824to1828
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
ListBox - Zeile kopieren und einfügen
26.04.2021 12:07:35
David
Hallo Excel-Community,
in meiner Excel Liste habe ich ein Formular mit einer ListBox.
Aktuell ist es so das alle ausgewählten Einträgen ab Zeile "30" in meine Tabelle eingetragen werden.
zb.: Ich wähle "Toast" "Butter" "Käse" aus.
Dann wird in Tabelle X :
In Zeile 30 "Toast" eingefügt
In Zeile 31 "Butter
In Zeile 32 "Käse".
Jetzt würde ich gerne das er Zeile "6" als Muster nimmt und diese unten darunter eine Neue Zeile kopiert und die auswahl einfügt.
zb.: Ich wähle "Toast" "Butter" "Käse" aus.
In Zeile 30 wird "Toast" eingefügt
Zeile 30 wird kopiert und unten drunter eine neue Zeile mit "Butter" eingefügt
Zeile 30 wird kopiert und unten drunter eine neue Zeile mit "Käse" eingefügt
Ich hoffe das war soweit verständlich, anbei mein Code:

'Sondereinbauten/-anbauten aus ListBox
Dim i As Long
Dim j As Long
Dim blnOk As Boolean
j = 30
For i = 0 To ListBox_SchrankeSonder.ListCount - 1
If ListBox_SchrankeSonder.Selected(i) Then
ActiveSheet.Cells(j, 3) = _
ListBox_SchrankeSonder.List(i, 0)
j = j + 1
blnOk = True
End If
Next
If Not blnOk Then ActiveSheet.Rows("27:34").Hidden = True
danke schon einmal für eure Hilfe!
Gruß David

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox - Zeile kopieren und einfügen
26.04.2021 12:34:25
Klaus
Moin David,
ungetestet aus dem Ärmel:

'Sondereinbauten/-anbauten aus ListBox
Dim i As Long
Dim j As Long
Dim blnOk As Boolean
j = 30
For i = 0 To ListBox_SchrankeSonder.ListCount - 1
If ListBox_SchrankeSonder.Selected(i) Then
ActiveSheet.Rows(6).Copy
ActiveSheet.Rows(j).PasteSpecial
ActiveSheet.Cells(j, 3) = _
ListBox_SchrankeSonder.List(i, 0)
j = j + 1
blnOk = True
End If
Next
If Not blnOk Then ActiveSheet.Rows("27:34").Hidden = True
Wenn du nur ein paar dutzend Einträge machst, sollte das kein Problem sein. Schneller wäre es, erst die Zeile in den gesamten Bereich zu kopieren und dann die Schleife durchlaufen zu lassen, aber ich behaupte den Geschwindigkeitsgewinn merkst du erst ab mehreren tausend Einträgen.
LG,
Klaus M.
Anzeige
AW: ListBox - Zeile kopieren und einfügen
26.04.2021 13:11:11
David
Hallo Klaus,
leider kopiert er die "Muster-Zelle" nur nach unten in die bereits vorhanden Zellen und überschreibt Sie dann. Es sollen ja neue Zellen eingefügt werden und keine darunter überschrieben werden, da ich da noch andere Einträge habe.
Wie würde den die Lösung mit dem Zellen zuerst kopieren ausehen?
Ich nehme an wenn es 5 Listbox einträge sind soll er die Muster Zelle 4 mal darunter kopieren erst und danach wird der Inhalt eingefügt werden?
Danke dir schonmal für die Hilfe!
Gruß David
AW: ListBox - Zeile kopieren und einfügen
26.04.2021 13:19:33
Klaus
Lädst du mir eben eine Musterdatei hoch? Ich muss auch ein bisschen rumprobieren.
LG,
Klaus M.
Anzeige
AW: ListBox - Zeile kopieren und einfügen
26.04.2021 14:07:05
Klaus
Hallo David,
auf die Schnelle etwas "dirty" aber funktioniert:

Private Sub Button_SchrankeKonfigurieren_Click()
'Frame Konfiguration in ExcelSheet eintragen
ActiveSheet.Range("C10").Value = SchrankenKonfig.ComboBox_SchrankeTyp.Value
ActiveSheet.Range("C11").Value = SchrankenKonfig.ComboBox_Spannung.Value
ActiveSheet.Range("C12").Value = SchrankenKonfig.ComboBox_Schrankenbaum.Value
ActiveSheet.Range("G12").Value = SchrankenKonfig.Text_Schrankenbaumlaenge.Value
ActiveSheet.Range("C13").Value = SchrankenKonfig.ComboBox_Knickbaum.Value
ActiveSheet.Range("C14").Value = SchrankenKonfig.ComboBox_R_L_Anschlag.Value
ActiveSheet.Range("C15").Value = SchrankenKonfig.ComboBox_Endanschlag.Value
ActiveSheet.Range("C16").Value = SchrankenKonfig.ComboBox_Vorwarnleuchte.Value
ActiveSheet.Range("C17").Value = SchrankenKonfig.ComboBox_Lichtschranke.Value
ActiveSheet.Range("C18").Value = SchrankenKonfig.ComboBox_Feder.Value
'Frame Schrankensteuerung in ExcelSheet eintragen
ActiveSheet.Range("C23").Value = SchrankenKonfig.ComboBox_Schrankensteuerung.Value
ActiveSheet.Range("C24").Value = SchrankenKonfig.ComboBox_Funk.Value
ActiveSheet.Range("C25").Value = SchrankenKonfig.ComboBox_Schleifen.Value
'CheckBox "Schranke ohne Steuerung" Prüfen
If CheckBox_ohne_Steuerung.Value = True Then
ActiveSheet.Rows("20:26").Hidden = True
End If
'Sondereinbauten/-anbauten aus ListBox
Dim i As Long
Dim j As Long
Dim blnOk As Boolean
j = 31
For i = ListBox_SchrankeSonder.ListCount - 1 To 0 Step -1
If ListBox_SchrankeSonder.Selected(i) Then
Rows("31:31").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveSheet.Rows(30).Copy
ActiveSheet.Rows(j).PasteSpecial
ActiveSheet.Cells(j, 3) = _
ListBox_SchrankeSonder.List(i, 0)
blnOk = True
End If
Next
Rows("30:30").Delete Shift:=xlUp
If Not blnOk Then ActiveSheet.Rows("27:34").Hidden = True
'Eingabefenster schliessen
Unload SchrankenKonfig
End Sub

Anzeige
AW: ListBox - Zeile kopieren und einfügen
26.04.2021 16:08:41
David
Hallo Klaus,
Grundsätzlich Super und erfüllt fast seinen Zweck.
Eine Sache ist nur ein Problem, ich sehen du löscht die "Musterzeile" am Ende immer. Wenn nichts in der ListBox ausgewählt ist (was durchaus oft vorkommen wird ) soll die Musterzeile und der Rest nur ausgeblendet sein.
Dies habe ich bisher so gelöst:

If Not blnOk Then ActiveSheet.Rows("27:31").Hidden = True
Wenn ich natürlich dein Löschen raus nehme habe ich diese Zeile bei einer "ListBox" auswahl immer mit dort stehen, inkl. Excel befindet sich im Copy Modus.
Hast du dafür ne Idee für die Zwickmühle?
Danke dir schonmal für deine mühen!
Gruß David
Anzeige
AW: ListBox - Zeile kopieren und einfügen
26.04.2021 16:17:40
Klaus
Dann nutz doch blnOK um das abzufragen:

if blnOK then Rows("30:30").Delete Shift:=xlUp
If Not blnOk Then ActiveSheet.Rows("27:34").Hidden = True
LG,
Klaus M.
den copy modus ....
26.04.2021 16:18:50
Klaus
... beendest du, indem du am Ende des Makros oder direkt nach dem Einfügen

Application.cutcopymode = false
schreibst.
LG,
Klaus M.
AW: den copy modus ....
28.04.2021 09:13:29
David
Moin,
konnte das jetzt erst Testen!
Es Funktioniert jetzt alles, Ich danke dir Klaus :)
Gruß David
Danke für die Rückmeldung! owT.
29.04.2021 06:53:02
Klaus
.

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige