For Schleife
17.08.2022 13:54:05
Herbert
ist es möglich Ergebnisse aus einer For Schleife in einer Zelle zu verketten,
die Werte werden sonst vorher nach einander ausgegeben.
Code:
Private Sub cmdbtn_ÜBERNAHME_Click()
Dim i As Integer, k As Integer, e As Integer, _
Vari As Variant, x As Integer, APWF As WorksheetFunction, _
o As Integer
Set APWF = Application.WorksheetFunction
For i = 1 To Worksheets("Datenbank").Range("tbl_Lieferschein").Rows.Count
If Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 1).Value = "" Then
'DEHA-Gehänge in Tabelle übernehmen:
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 1).Value = Range("Lieferschein_Nummer").Value
For e = 20 To 25
Vari = Worksheets("Datenbank").Cells(1, e)
For x = 3 To 7
On Error GoTo Fehlerbehebung:
If Vari = "1-1,3 to." Then
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 7).Value = APWF.VLookup(Vari, Range("tbl_Inventarnummern"), x, False)
ElseIf Vari = "1,5-2,5 to." Then
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 8).Value = Application.WorksheetFunction.VLookup(Vari, Range("tbl_Inventarnummern"), x, False)
ElseIf Vari = "3-5 to." Then
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 9).Value = Application.WorksheetFunction.VLookup(Vari, Range("tbl_Inventarnummern"), x, False)
ElseIf Vari = "6-10 to." Then
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 10).Value = Application.WorksheetFunction.VLookup(Vari, Range("tbl_Inventarnummern"), x, False)
ElseIf Vari = "12-20 to." Then
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 11).Value = Application.WorksheetFunction.VLookup(Vari, Range("tbl_Inventarnummern"), x, False)
Else
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 12).Value = Application.WorksheetFunction.VLookup(Vari, Range("tbl_Inventarnummern"), x, False)
End If
Next x
Fehlerbehebung:
Resume Next
Next e
'Andere Daten vom Lieferschein übernehmen:
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 2).Value = Range("Name_Verlader").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 3).Value = Range("Auftragsnummer").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 4).Value = Range("Kunde").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 5).Value = Range("Baustelle").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 6).Value = Range("Datum").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 15).Value = Range("Spedition").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 16).Value = Range("Fahrzeug_Kennzeichen").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 17).Value = Range("Fahrer").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 18).Value = Range("Unterschrift").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 19).Value = Range("Blockschrift").Value
Worksheets("Datenbank").Range("tbl_Lieferschein").Cells(i, 20).Value = Range("Auf_Baustelle_verblieben").Value
Exit Sub
End If
Next i
End Sub
Erstes Ergebnis: APWF.VLookup(Vari, Range("tbl_Inventarnummern"), x, False)(APWF steht für Application.WorksheetsFunction)
Bei den Ergebnissen werden immer mehrere ausgegeben,
das ist auch so gewollt,
er spuckt mir die Ergebnisse in einer aus einer For-Schleife aus,
wo er dann z.B.: "1234; 1235 ; 1236; 1237" hat.
Die Werte wären zu allererst alle alleine in einer Zelle in einer Tabelle.
Spalte 3 - 7 (1 = Laststufe, 2 = Menge), diese möchte ich aber nicht als feste Range angeben, weil es variabel zu neuen Touren sein soll.
Es kann sein das in einer Tour 20 Inventarnummern sind mit á 5 verschiedenen Laststufen (wovon dann 4 jeweils zu einer Laststufe zählen.)
Die Tabellenüberschriften der Inventarnummern lauten "1.:" - "4.:", also immer gleich die Anführungszeichen weg und dann von 1 - 4.
Als Ergebnis möchte ich die Zahlen wie oben in einer Zelle stehen haben...,
ich selber schaffe es aber nicht die Daten direkt in der Schleife zu verknüpfen/verketten,
bin mir aber auch nicht sicher ob dies überhaupt möglich ist.
MfG
Herbert