Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ListBox - Zeile kopieren und einfügen

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
Anzeige

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
Anzeige
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.
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.
Anzeige
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
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige