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

Checkboxen Listboxen

Checkboxen Listboxen
20.05.2016 19:58:16
Michael
Hallo an alle,
ich habe mal wieder ein größeres Problem.
Ich lese eine Listbox folgendermassen ein:
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 3
.ColumnWidths = "1cm;2cm;2cm"
.ColumnHeads = True
.RowSource = "Stammdaten!A2:C500"
End With
End Sub
Jetzt habe ich die Listbox auf Multiselct eingestellt.
Dazu habe ich nich 15 Checkboxen, wenn ich nun einen oder mehrere Personalnummern in der Listbox anklicke sollen diese mir in den Tabellenblatt Stammdaten Spalte 1 gesucht werden und die dazugehörigen Daten von den Checkboxen die angeklickt sind in ein Tabellenblatt kopiert und ausgedruckt werden.
Checkbo1 Personalnummer aus Tabellenblatt Stammdaten Spalte A
Checkbox 2 Name aus Tabellenblatt Stammdaten Spalte B
usw
Datei habe ich hochgeladen:
https://www.herber.de/bbs/user/105701.xlsm
Wäre für Hilfe oder Denkanstoss sehr dankbar.
Gruß Michael

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkboxen Listboxen
21.05.2016 08:09:38
Beverly
Hi Michael,
da deine CheckBoxen der Spaltennummer entsprechen, kann man das relativ einfach lösen:
Private Sub CommandButton1_Click()
Dim lngIndex As Long
Dim intBox As Integer
Dim lngAusgabe As Long
Dim intSpalte As Integer
lngAusgabe = 1  '


AW: Checkboxen Listboxen
21.05.2016 09:09:13
Michael
Guten Morgen Karin,
Danke erstmal für deine Antwort!
Meine VBA Kenntnisse sind relativ bescheiden, daher weiss ich nicht wo die Zieltabelle eingefügt wird.
Meine Versuche sind bisher mit Fehlermeldungen seitens Excel gescheitert.
Meine Zieltabelle hat den Namen StammDruck und ich möchte die Daten ab der 2. Zeile rein kopiern, weil die erste Zeile die Überschriften beinhaltet.
Gruß Michael

Anzeige
AW: Checkboxen Listboxen
21.05.2016 09:51:10
Beverly
Hi Michael,
so schwer sollte das doch eigentlich gar nicht sein, auch mit geringen VBA-Kenntnissen, denn ich hatte in meinem Code die betreffenden Stellen bewusst durch Kommentare markiert...
Also einfach "Tabelle1" durch "StammDruck" ersetzen und in der Zeile lngAusgabe = 1 die 1 durch 2


AW: Checkboxen Listboxen
21.05.2016 10:30:29
Michael
Hallo Karin,
kannst du mir deinen Code mal näher erklären?
Ich kann dort nicht erkennen wo die Daten kopiert werden, die ich in den Checkboxen angeklickt habe.
Mein Ziel ist es wenn ich jetzt z.B. Checkbox Name, Vorname, Geburtsdatum und Eintritt anklicke und in der Listbox die Namen Huber und Meier, soll in Stammdaten nach Huber Meier gesucht werden und
auch nur Name, Vorname, Geburtsdatum und Eintritt aus Tabelle Stammdaten in Tabelle DruckStamm reinkopiert werden und das ganze dann gedruckt und die Zellen in Druckstamm wieder geleert werden.
Gruß Michael

Anzeige
AW: Checkboxen Listboxen
21.05.2016 10:57:01
Beverly
Hi Michael,
hast du den Code denn schon mal gestestet? Er macht doch genau das was du erreichen willst: für ausgewählte ListBoxzeilen die Spalten fortlaufend kopieren, für die die CheckBoxen aktiviert sind.
Hier der Code mit weiteren Kommentaren sowie Erweiterung zum Übertragen der Spaltenüberschriften (aus den CheckBox-Caption) und Leeren des Tabellenblattes (nach dem drucken):
Private Sub CommandButton1_Click()
Dim lngIndex As Long
Dim intBox As Integer
Dim lngAusgabe As Long
Dim intSpalte As Integer
lngAusgabe = 2
intSpalte = 1
' Schleife über alle vorhandenen Einträge der ListBox
For lngIndex = 0 To Me.ListBox1.ListCount - 1
' laufender Eintrag ist markiert
If ListBox1.Selected(lngIndex) Then
' Schleife von 1 bis 24 (alle CheckBox-Nummern)
For intBox = 1 To 24
' Steuerelement mit Namen "CheckBox" & Schleifenzähler ist aktiviert
If Me.Controls("CheckBox" & intBox) Then
' Spaltenüberschrift aus CheckBox-Caption
Worksheets("DruckStamm").Cells(1, intSpalte) = _
Me.Controls("CheckBox" & intBox).Caption
' Zelle(Listindex + 2, Spalte = CheckBox-Nr.) kopieren nach
' Zelle(Ausgabezeile, Ziel-Spaltennummer)
Cells(lngIndex + 2, intBox).Copy _
Worksheets("DruckStamm").Cells(lngAusgabe, intSpalte)
' Ziel-Spaltennummer um 1 erhöhen
intSpalte = intSpalte + 1
End If
Next intBox
' nächste Ausgabezeile
lngAusgabe = lngAusgabe + 1
' nächste Ziel-Spaltennummer
intSpalte = 1
End If
Next lngIndex
' Hier Code zum Drucken
' Tabelle leeren
Worksheets("DruckStamm").Cells.Clear
End Sub

Das Drucken selbst kannst du mit dem Makrorekorder aufzeichnen.
Noch ein Hinweis: Die ersten 4 CheckBoxen würde ich generell aktiviert setzen und daran durch den Benutzer auch keine Veränderugnen machen lassen, denn ich denke, dass diese Daten bei jedem Druck benötigt werden.


Anzeige
AW: Checkboxen Listboxen
21.05.2016 11:22:16
Michael
Hallo Karin,
jetzt stehen die in der Checkbox angeklickten in der ersten Zeile oben in Druckstamm.
Darunter sollten jetz die Namen aus der Listbox erscheinen und die dazugehörigen Daten aus der Tabelle Stammdaten.
Ist aber leider nicht der Fall.
In deinem Code kann ich aber auch nicht erkennen das irgendwas aus der Tabelle Stammdaten kopiert wird.
Hast du dir denn mal meine hochgeladenen Datei angeschaut?
Vielleicht ist meine Ausführung dann verständlicher.

AW: Checkboxen Listboxen
21.05.2016 12:38:40
Beverly
Hi Michael,
ich verstehe dein Problem nicht, denn der Code ist doch genau auf deine hochgeladene Mappe abgestimmt - woher würde ich denn sonst deinen Tabellenaufbau und die Namen der Steuerelemente auf deinem UserForm kennen...
https://www.herber.de/bbs/user/105708.xlsm
Liest du eigentlich die Kommentar im Code? Mir scheint das nicht der Fall zu sein, denn dort steht doch ganz eindeutig, an welcher Stelle die Daten kopiert werden - wie kannst du also nicht wissen, wo das geschieht...?


Anzeige
AW: Checkboxen Listboxen
21.05.2016 13:17:24
Michael
Hallo Karin,
ich bin solch ein Idiot! (schäm)
Ich stand immer auf dem Zieltabellenblatt, um zu sehen ob was kopiert wird, wurde es auch, aber von dem aktiven Tabellenblatt und das war natürlich ständig das leere Zieltabellenblatt.
Meine Mappe ist etwas umfangreicher als die Beispielmappe!
Habe jetzt diesen Satz angepasst:
Tabelle1.Cells(lngIndex + 2, intBox).Copy _
Worksheets("DruckStamm").Cells(lngAusgabe, intSpalte)
und siehe da, es funktioniet einwandfrei!
Vielen, vielen dank für deine Geduld Karin!!!!!!!
Gibt es noch die Möglichkeit anstatt die Formeln, nur den Text/Zahl zu kopieren?
Gruß Michael

Anzeige
AW: Checkboxen Listboxen
21.05.2016 13:21:57
Michael
Ich nochmal,
es soll nur der Text/Zahl kopiert werden und nicht Format und Formeln mit.

AW: Checkboxen Listboxen
21.05.2016 14:48:43
Werner
Hallo Michael,
Tabelle1.Cells(lngIndex + 2, intBox).Copy
Worksheets("DruckStamm").Cells(lngAusgabe, intSpalte).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Gruß Werner

AW: Checkboxen Listboxen
21.05.2016 15:15:41
Michael
Hallo Werner,
vielen Dank! klappt jetzt.
Gibt es noch die möglichkeit nur das Zahlenformat mit rüber zu kopieren?
Gruß Michael

AW: Checkboxen Listboxen
21.05.2016 17:20:47
Werner
Hallo Michael,
versuch mal:
Tabelle1.Cells(lngIndex + 2, intBox).Copy
Worksheets("DruckStamm").Cells(lngAusgabe, intSpalte).PasteSpecial Paste:=xlPasteValues
Worksheets("DruckStamm").Cells(lngAusgabe, intSpalte).NumberFormat _
= Tabelle1.Cells(lngIndex + 2, intBox).NumberFormat
Application.CutCopyMode = False
Kann dir aber nicht sagen, ob es so auch funktioniert.
Gruß Werner

Anzeige
AW: Checkboxen Listboxen
22.05.2016 09:45:57
Michael
Guten Morgen zusammen,
vielen, vielen Dank an euch!!!
Klappt jetzt wie es mir vorstelle.
Gruß Michael

AW: Checkboxen Listboxen
22.05.2016 10:24:29
Nepumuk
Hallo,
das geht noch kürzer:
Tabelle1.Cells(lngIndex + 2, intBox).Copy
Worksheets("DruckStamm").Cells(lngAusgabe, intSpalte).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False

Gruß
Nepumuk

Anzeige
AW: Gerne u. Danke für die Rückmeldung. owT
22.05.2016 12:27:26
Werner

AW: Problem mehspaltige ListBox
22.05.2016 16:54:24
Werner
Hallo Michael,
bzgl. deinem alten Problem mit der mehspaltigen ListBox und der Übernahme von geänderten Werten hätte ich vermutlich eine Lösung des Problems gefunden. Du bist da zwischenzeitlich ja einen anderen weg gegangen von daher weiß ich nicht ob daran noch Interesse besteht.
Gruß Werner

AW: Problem mehspaltige ListBox
22.05.2016 17:05:10
Michael
Hallo Werner,
gerne würde ich das Problem nochmal aufnehmen!
Mit meiner jetzigen Lösung bin ich nicht zufrieden!
Gruß Michael

AW: Problem mehspaltige ListBox
22.05.2016 17:29:35
Werner
Hallo Michael,
alles klar. Ich denke ich komme morgen dazu mich mal dran zu setzen - bringen ja schlechtes Wetter -
Ich melde mich.
Gruß Werner

Anzeige
AW: Problem mehspaltige ListBox
22.05.2016 18:02:29
Michael
Vielen Dank, Werner!
Ich habe es auch nochmal probiert in der letzten Woche, habe es aber nicht hinbekommen.
Wäre klasse wenn du es schaffen würdest.
Schönen Sonntag noch

AW: Problem mehspaltige ListBox
24.05.2016 11:24:44
Michael
Guten Morgen Werner,
habe es jetzt bei mir umgesetzt und muss feststellen das das jetzt super funktioniert, sich aber andere Baustellen auftuen.
Egal, wenn die andrern Baustellen dann behoben sind, läuft alles wie ich mir das vorstelle.
Vielen Dank für deine Hartnäckigkeit bei dem Problem.
Gruß Michael

Anzeige
AW: Gerne und danke für die Rückmeldung. o.w.T.
24.05.2016 11:33:23
Werner

AW: Gerne und danke für die Rückmeldung. o.w.T.
24.05.2016 12:07:54
Werner
Hallo Michael,
kannst ja mal eine aktuelle Datei hochladen mit ner Beschreibung wo es noch klemmt.
Gruß Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige