Hej, habe mir deinen Codevorschlag genau angeschaut und daraus einige wichtige Erkenntnisse Abgeleitet, danke dafür nochmal.
Da ich das ganze aber auch gut verstehen möchte und eventuell in Zukunft auch noch andere Projekte mit VBA realisieren möchte, habe ich den code auf meine eigene weise implementiert. Ich stehe auch schon kurz von Ziel. Das ist der Code:
Sub ErzeugeBarcode()
' Variablen Deklaration
Dim BarcodeBereich As String
Dim ArtNrSpalte As String
Dim Tabele
Dim CodierungZelle As String
Dim Y As Double
Dim x As Double
Dim Art1 As Integer
Dim Art2 As Integer
Dim Art3 As Integer
Dim Art4 As Integer
Dim Art5 As Integer
Dim Art6 As Integer
Dim Art7 As Integer
' Variablen Initialisierung
BarcodeBereich = Sheets("Operator").Cells(3, 6)
Tabele = Range("Operator!B1").Value
ArtNrSpalte = Range("Operator!B2").Value
CodierungZelle = Range("Operator!B4").Value
' Formatierung der Barcode Zellen
Sheets(Tabele).Activate
Columns("B:DC").ColumnWidth = 2.5
For Y = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print Y
'Vergabe der 7 Zahlenpaare des Barcodes
Art1 = Left(Sheets("Testfeld").Cells(2, 1).Offset(Y, 0).Value, 2)
Art2 = Left(Right(Sheets("Testfeld").Cells(2, 1).Offset(Y, 0).Value, 6), 2)
Art3 = Left(Right(Sheets("Testfeld").Cells(2, 1).Value, 4), 2)
Art4 = Left(Right(Sheets("Testfeld").Cells(2, 1).Value, 2), 2)
Art5 = 0
Art6 = 0
' Ermittlung der Prüfziffer
' Art7 = 10 - Right(Left(Range("Testfeld!A3").Value, 1) * 3 + Left(Right(Range("Testfeld!A3").Value, 7), 1) * 1 + Left(Right(Range("Testfeld!A3").Value, 6), 1) * 3 + Left(Right(Range("Testfeld!A3").Value, 5), 1) * 1 + Left(Right(Range("Testfeld!A3").Value, 4), 1) * 3 + Left(Right(Range("Testfeld!A3").Value, 3), 1) * 1 + Left(Right(Range("Testfeld!A3").Value, 2), 1) * 3 + Left(Right(Range("Testfeld!A3").Value, 1), 1) * 1, 1)
Art7 = 10 - Right(Left(Sheets("Testfeld").Cells(2, 1).Value, 1) * 3 + Left(Right(Sheets("Testfeld").Cells(2, 1).Value, 7), 1) * 1 + Left(Right(Sheets("Testfeld").Cells(2, 1).Value, 6), 1) * 3 + Left(Right(Sheets("Testfeld").Cells(2, 1).Value, 5), 1) * 1 + Left(Right(Sheets("Testfeld").Cells(2, 1).Value, 4), 1) * 3 + Left(Right(Sheets("Testfeld").Cells(2, 1).Value, 3), 1) * 1 + Left(Right(Sheets("Testfeld").Cells(2, 1).Value, 2), 1) * 3 + Left(Right(Sheets("Testfeld").Cells(2, 1).Value, 1), 1) * 1, 1)
' Generierung Barcode einer Zeile
' Startcodon
Sheets("Testfeld").Cells(2, 2) = 1
Sheets("Testfeld").Cells(2, 3) = 0
Sheets("Testfeld").Cells(2, 4) = 1
Sheets("Testfeld").Cells(2, 5) = 0
' Barcode aus Artikelnummer
For x = 0 To 13
Sheets("Testfeld").Cells(2, 6).Offset(0, x) = Left(Sheets("Codierung").Cells(Art1 + 1, 4).Offset(0, x).Value, 1)
Next x
For x = 0 To 13
Sheets("Testfeld").Cells(2, 20).Offset(0, x) = Left(Sheets("Codierung").Cells(Art2 + 1, 4).Offset(0, x).Value, 1)
Next x
For x = 0 To 13
Sheets("Testfeld").Cells(2, 34).Offset(0, x) = Left(Sheets("Codierung").Cells(Art3 + 1, 4).Offset(0, x).Value, 1)
Next x
For x = 0 To 13
Sheets("Testfeld").Cells(2, 48).Offset(0, x) = Left(Sheets("Codierung").Cells(Art4 + 1, 4).Offset(0, x).Value, 1)
Next x
For x = 0 To 13
Sheets("Testfeld").Cells(2, 62).Offset(0, x) = Left(Sheets("Codierung").Cells(Art5 + 1, 4).Offset(0, x).Value, 1)
Next x
For x = 0 To 13
Sheets("Testfeld").Cells(2, 76).Offset(0, x) = Left(Sheets("Codierung").Cells(Art6 + 1, 4).Offset(0, x).Value, 1)
Next x
For x = 0 To 13
Sheets("Testfeld").Cells(2, 90).Offset(0, x) = Left(Sheets("Codierung").Cells(Art7 + 1, 4).Offset(0, x).Value, 1)
Next x
' Endcodon
Sheets("Testfeld").Cells(2, 104) = 1
Sheets("Testfeld").Cells(2, 105) = 1
Sheets("Testfeld").Cells(2, 106) = 0
Sheets("Testfeld").Cells(2, 107) = 1
Next Y
End Sub
Jetzt hatte ich vor ab "'Vergabe der 7 Zahlenpaare des Barcodes" in allen Cells(2, ...) die zwei durch ein y zu ersetzen, bekomme dort aber die Fehlermeldung : Laufzeitfehler 13 , Typen unverträglich. Was ich gerade nicht verstehen kann.
|