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