Hallo,
Du kannst natürlich bei Deinen bereits kreierten Arrays bleiben...
Ich würde mir allerdings ein String-Array mit 15 Member nehmen und dort als String jeweils die 14 bzw. 4 Binär-Werte 1/0 einpflegen
Ergibt weniger Variablen, die dimensioniert werden müssen.
Auf dieser Basis habe ich mal einen Vorschlag programmiert. siehe Code.
Hierzu die 106 Spalten, in denen der Barcode abgelegt wird, schmal ziehen.
Ob das in Deinem Sinne ist und schon hundertprozentig funktioniert, musst Du beurteilen, aber vielleicht bringt Dich das ja schon etwas weiter.
Code:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 |
|
Option Explicit
Sub CreateBarcode()
Dim iPos As Integer, iArtikelSpalte As Integer, iBarCodeSpalte As Integer
Dim iZeile As Long, iBC As Integer, iOutSpalte As Integer
Dim sArrBC(13) As String
Application.ScreenUpdating = False
iArtikelSpalte = 2 ' Spaltenvorgabe <<<anpassen>>>
iBarCodeSpalte = 3 ' Spaltenvorgabe <<<anpassen>>>
' Alle Zeilen bis keine Werte mehr da durchgehen
For iZeile = 2 To Cells(Rows.Count, iArtikelSpalte).End(xlUp).Row
' Hier müsste anhand der Artikelnummer das Array gefüllt werden
' Barcode aus Artikelnummer erzeugen
sArrBC(0) = "1100" ' Beginn
sArrBC(1) = "11001101010101"
sArrBC(2) = "01010101011001"
sArrBC(3) = "11001101010101"
sArrBC(4) = "11001101010101"
sArrBC(5) = "01010101011001"
sArrBC(6) = "01010101010101"
sArrBC(7) = "10101010101010"
sArrBC(8) = "0101" ' Ende
iOutSpalte = iBarCodeSpalte ' Beginnspalte für den Barcode neu setzen
For iBC = 0 To 8
For iPos = 1 To Len(sArrBC(iBC)) ' Alle Array-Member durchgehen
Select Case Mid$(sArrBC(iBC), iPos, 1) ' Alle Bit durchgehen
Case "1": Cells(iZeile, iOutSpalte).Interior.Color = vbBlack
Case "0": Cells(iZeile, iOutSpalte).Interior.Color = vbWhite
End Select
iOutSpalte = iOutSpalte + 1 ' Nächstes Feld
Next iPos
Next iBC
Next iZeile
Application.ScreenUpdating = True
MsgBox "Fertig", vbInformation, "Barcode genenieren"
End Sub
|
_________
viele Grüße
Karl-Heinz
|