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

Forumthread: Listbox Multiselect "Drucken"-Schleife je nach Aus

Listbox Multiselect "Drucken"-Schleife je nach Aus
Lars
Hallo Liebe Excelgemeinde,
ich benötige nochmal von Euch Hilfe. Ich habe eine Listbox mit 13 Spalten, in welcher welcher per Multiselect-Auswahl einzelne, oder mehrere Datensätze ausgewählt werden können. Die dafür erforderlichen Daten befinden sich in einem Tabellenblatt "Daten" der Arbeitsmappe. Das klappt soweit gut.
Nun sollen bei Auswahl in der Listbox, ein paar Werte der ausgewählten Daten in anderen Tabellenblätter übertragen werden (Protokolle) und automatisch ausgedruckt werden. Die unterschiedlichen Protokolle existieren auch schon in meiner Mappe. Mir gelingt auch der Übertrag der Daten in die unterschiedlichen Protokollblätter. Das Prüfkriterium (welches Protokoll ausgewählt werden soll) ist der Wert der 6. Spalte meiner Daten im Tabellenblatt. Je nach Begriff (in meinem Fall ist es der "Tortyp"), soll das richtige Protokollblatt angesprochen werden.
Mein Problem ist nun, dass ich nur eine Protokollblatt ausgedruckt bekomme - und zwar ist es immer nur das zuletzt in der Listbox mit Häkchen versehene.
Mir ist aufgefallen, dass die anderen ausgewählten Daten auch - je nach Typ - in die richtigen Protokolle übertragen werden - hiefür erfolgt aber kein Ausdruck Sad
anbei mal mein Code... ich hoffe, er ist einigermaßen nachvollziehbar?
was mache ich falsch?....
Code:
Private Sub CommandButton6_Click()
Dim i As Long, intZ As Integer, durchsuchen, finden As Range
Dim x&
With ListBox1
For x = .ListCount - 1 To 0 Step -1 'die Schleife unbedingt rücwärts laufen lassen!
If .Selected(x) = True Then
'MsgBox .List(x, 5) & " in Tabelle suchen und löschen" '*** DEMO Zeile ***
'hier jetzt in Tabelle löschen
Set durchsuchen = Sheets("Daten").Range("B8:L" & Sheets("Daten").Range("B65536"). _
End(xlUp).Row)
For Each finden In durchsuchen
If finden.Text = .List(x, 5) Then     'Textvergleich der Tabelle mit Listbox  _
Zeile(x) aus Spalte5!
'If finden.Text = TextBox6.Text Then   !Das ist falsch! Du darfst nicht mit der  _
Textbox vergleichen
intZ = finden.Row                  'Zeile ermitteln
'Rows(intZ).Interior.ColorIndex = 6 '*** DEMO Zeile ***
MsgBox "Die Protokolle der ausgewählten Daten: Auftr. [" & .List(x, 5) & "]  _
werden jetzt gedruckt!", vbInformation, "Auftr. " & .List(x, 5) 'DEMO Zeile kann gelöscht werden
Cells(intZ, 7).EntireRow.Select    'Zeile in Tabelle auswählen
' **************************************** Prüfung auf Tortyp ********************************** _
If Cells(intZ, 6).Text = "Sektionaltor Antrieb" Then
Sheets("Sektionaltor Motor").Select
Range("C3").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 3).Value 'Firma/Kd./Betreiber
Range("C5").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 9).Value 'Standort
Range("C7").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 8).Value 'Baujahr
Range("C9").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 10).Value 'Torgröße
Range("K7").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 7).Value 'Auftr.Nr.
Range("X4").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 11).Value 'Steuerung
Range("S7").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 4).Value 'Tornummer
Sheets("Sektionaltor Motor").Activate
ActiveSheet.PrintOut From:=1, To:=1, Copies:=1
End If
'*********************************************************************************************** _
If Cells(intZ, 6).Text = "Sektionaltor Hand" Then
Sheets("Sektionaltor Hand").Select
Range("C3").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 3).Value 'Firma/Kd./Betreiber
Range("C5").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 9).Value 'Standort
Range("C7").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 8).Value 'Baujahr
Range("C9").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 10).Value 'Torgröße
Range("K7").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 7).Value 'Auftr.Nr.
Range("X4").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 11).Value 'Steuerung
Range("S7").Select
ActiveCell.Value = Sheets("Daten").Cells(intZ, 4).Value 'Tornummer
Sheets("Sektionaltor Hand").Activate
ActiveSheet.PrintOut From:=1, To:=1, Copies:=1
End If
' **************************************** Prüfung auf Tortyp Ende ***************************** _
Exit For
End If
Next finden
'jetzt das Häkchen in Listbox deaktivieren!
.Selected(x) = False
End If
Next
End With
ListBox1.ListIndex = ListBox1.ListIndex
End Sub

Hat jemand von Euch eine Idee, warum ich nur den untersten, mit Häkchen versehenen Listboxeintrag ausgedruckt bekomme, obwohl für die andren ausgewählten Daten der Übertrag in die Protokolle schon funktioniert?
Würde mich über Eure Hilfe freuen.
Gruß
Lars
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Listbox Multiselect "Drucken"-Schleife je nach Aus
12.08.2011 06:30:20
Oberschlumpf
Hi Lars
Bei VBA = gut weißt du sicherlich, was es für ne Anfangs-Arbeit macht, eine Datei erst mal zu designen, bevor man selbiger mit VBA-Code und/oder Formeln Leben einhauchen kann.
Deswegen verstehe ich nicht, warum du uns deine Datei nachbauen lässt, bevor wir beginnen können, eine Lösung für dich zu erarbeiten.
Es mag vllt Leute geben, die sich "theoretisch" durch deinen vielen und leider unübersichtlichen Code "hangeln". Aber definitiv einfacher wäre es doch, wenn du uns die Datei zeigst - wenn Datei zu groß, dann mach davon doch ne Kopie, lösch alles andere und lass nur das drin, was zum Verstehen deines Problems wichtig ist.
Ciao
Thorsten
Anzeige
;

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