3.7k Aufrufe
Gefragt in Tabellenkalkulation von benjaminm Mitglied (631 Punkte)
Hallo @all,

ich knüpfe an meinen alten Beitrag mal an, in dem mir schon geholfen wurde.

Ich habe nun auf der gleichen Datei aber ein Problem neue Masse anzuwenden!

Kann sich das mal jemand anschauen? ich lege die Originaldatei mit den neuen Maßen under TB Configuration hier mal ab.

Ich habe das Problem das ich bei der Änderung erstens die Barcodes nicht mehr in der breite auf ein DINA4 Blatt bekomme und 2tens ich 24 Barcodes auf ein Blatt haben möchte jedoch nach meinen Änderungen die letzten 4 Zeilen nicht mehr als Barcodes generiert werden.
Das sind meine Probleme. Jedoch schicke ich hier die Originaldatei, ohne Änderungen, evtl. kann ja jemand diesen Code anpassen ohne noch meine Fehler zuvor ausmerzen zu müssen.

Ist es möglich die Datei so umzubauen:
- 24 Barcodes auf einer Seite
- 3 nebeneinander
- 8 untereinander
- keine 2 zellen (Strichcode & Nummer) sondern nur ein Feld
- Maße pro Feld 70,0 x 35,0 mm

oder muss ich mir was neues erstellen?
Ich bekomme es überhaupt nicht hin!
die Spalten von 4 auf 3 konnte ich reduzieren aber dann wurden grundsätzlich die letzten 4 Zeilen nicht richtig formatiert.

Vielen Dank im Voraus

Benjamin

17 Antworten

0 Punkte
Beantwortet von kauz Mitglied (291 Punkte)
Hall Benjamin,
hier mal ein paar Änderungen:
Vielleicht hilft es Dir ja weiter.
Sub fillPageWithBarcodes(page As Integer, startBarcodeValue As Double, count As Integer)
Dim col As Integer, row As Integer

If Not (count = 0) Then
fillPageWithBarcodes page - 1, startBarcodeValue - 1, count - 1
row = (((count - 1) \ 3) + 1) * 2
col = ((count - 1) Mod 3) + 1
'##### ORGINALCODE############
' Worksheets("Barcodes").Cells(row - 1, col).Value = Format_Code128(getContainerCode(Trim(Str(startBarcodeValue))))
' Worksheets("Barcodes").Cells(row, col).Value = "SID: " + getContainerCode(Trim(Str(startBarcodeValue)))
'##### ------------- Alles in Eine Zelle --------------------------
Worksheets("Barcodes").Cells(row - 1, col).Value = Format_Code128(getContainerCode(Trim(Str(startBarcodeValue)))) & Chr(13) & "SID: " + getContainerCode(Trim(Str(startBarcodeValue)))
End If

End Sub


Sub setBarcodeCells(pages As Integer, heightFirst As Integer, heightSecond As Integer, clearTextHeightFirst As Integer, clearTextHeightSecond As Integer)
Dim row As Integer

If Not pages = 0 Then
setBarcodeCells pages - 1, heightFirst, heightSecond, clearTextHeightFirst, clearTextHeightSecond
If (pages Mod 3) = 1 Then
row = (pages \ 3 + 1) * 2 ' oder wie oben (ist egal) row = (((pages - 1) \ 4) + 1) * 2


Worksheets("Barcodes").Rows(row - 1).Font.Name = "Code-128-DH"
'###------------ Schriftgröße 1.Zeile der Zelle --------------------------------------
Worksheets("Barcodes").Rows(row - 1).Characters(Start:=1, Length:=13).Font.Size = 22
'###------------ Schriftgröße 2.Zeile der Zelle -----------------------------
Worksheets("Barcodes").Rows(row - 1).Characters(Start:=14, Length:=16).Font.Size = 18
'###------------- Zeilenumbruch setzen ----------------------------------------
Worksheets("Barcodes").Rows(row - 1).WrapText = True

Worksheets("Barcodes").Rows(row - 1).VerticalAlignment = xlVAlignTop
Worksheets("Barcodes").Rows(row - 1).RowHeight = heightFirst
'Worksheets("Barcodes").Rows(row - 1).Font.Size = 22
'###-------------- Die zweite Zeile ausblenden -------------------------------
Worksheets("Barcodes").Rows(row).Hidden = True

'##### ORGINALCODE############
' Worksheets("Barcodes").Rows(row).Font.Name = "Arial"
' Worksheets("Barcodes").Rows(row).VerticalAlignment = xlVAlignTop
' Worksheets("Barcodes").Rows(row).RowHeight = clearTextHeightFirst
'Worksheets("Barcodes").Rows(row).Font.Size = 12

End If
End If
End Sub
Folgende Einstellungen hab ich benutzt:
Höhe Barcodefeld Reihe 1 90
Höhe Barcodefeld Reihe 2 90
Breite Barcodefeld Spalte 1 32,43
Breite Barcodefeld Spalte 2 32,43
Breite Barcodefeld Spalte 3 32,43
Standardanzahl für Berechnung 24
Die folgenden haben eigentlich keinen Einfluß mehr, weil die Zeile ausgeblendet wird.
Das war einfacher, als die Stellen zu finden, um die 2te Zeile ganz raus zu nehmen.
Höhe Klartextfeld Reihe 1 25
Höhe Klartextfeld Reihe 2 25

Gruß
Kauz
0 Punkte
Beantwortet von benjaminm Mitglied (631 Punkte)
Hallo Kauz,

Super, das funktionier soweit schon gut.

Jetzt bekomme ich von meinem Chef (nachträglich) die Anforderung, den Barcode in Text umzuwandeln.
Nun bin ich etwas buff, da ja eigentlich beim Barcode eine Zahl hochzählt!
Kann man das in diesem Code überhaupt ummünzen?
Momentan holt er sich ja den Wert aus dem TB Configuration "D22".
Wenn ich da aber einen Text eingebe, habe ich sofort einen Laufzeitfehler
Public Function getGreatestNumber() As Double
getGreatestNumber = CDbl(Worksheets("Configuration").Cells(22, 4).Text)
End Function


Gibts da ne Möglichkeit, das in Text zu ändern, ohne Counter?
Das soll dann ein statischer Wert sein der in allen Zellen gleich bleibt.

Ist das machbar?

Ich habe deinen Code noch mal angepasst

Sub fillPageWithBarcodes(page As Integer, startBarcodeValue As Double, count As Integer)
Dim col As Integer, row As Integer

If Not (count = 0) Then
fillPageWithBarcodes page - 1, startBarcodeValue - 1, count - 1
row = (((count - 1) \ 3) + 1) * 2
col = ((count - 1) Mod 3) + 1
'##### ORGINALCODE############
' Worksheets("Barcodes").Cells(row - 1, col).Value = Format_Code128(getContainerCode(Trim(Str(startBarcodeValue))))
' Worksheets("Barcodes").Cells(row, col).Value = "SID: " + getContainerCode(Trim(Str(startBarcodeValue)))
'##### ------------- Alles in Eine Zelle --------------------------
Worksheets("Barcodes").Cells(row - 1, col).Value = Format_Code128(getContainerCode(Trim(Str(startBarcodeValue)))) & Chr(13) & "SID: " + getContainerCode(Trim(Str(startBarcodeValue)))
End If

End Sub

und das fett gedruckte rausgenommen.

Zudem passen die 3 Zellen nebeneinander mit den neuen Maßen (s. TB Configuration"F11-F18") nicht auf ein DINA4 Blatt.
Geht da evtl. noch was?

Vielen Dank schon mal für die Anpassung
Benjamin
0 Punkte
Beantwortet von kauz Mitglied (291 Punkte)
Hallo Benjamin,
das geht jetzt dann doch etwas tiefer, daher muß ich erst noch mal was nachfragen:
Unter Barcode verstehe ich einen Strichcode... bei mir steht in einer Zelle z.B. folgendes:

Á1100000742eÈ
SID: 1100000742

Fehlt mir da was, um den Strichcode zu erhalten?

Ist mit in Text umwandeln gemeint, das Excel die Zahl nicht als Zahl sieht, sondern als Zeichenkette... oder
ist gemeint bestimmte Zahlen ergeben bestimmte Buchstaben??

Was da von deinem Chef gefordert wird, ist mir z.Z. schleierhaft.
Ich bin alles andere als ein Barcode-spezi... aber für mich steckt hinter dem Barcode erst mal nur eine Zahl.
Erst der angeschlossene Rechner ordnet der Zahl aus einer Datenbank weitere Informationen hinzu.
(abgesehen vielleicht von den zweidimensionalen, wie sie z.B. auf Briefen zu finden sind)

Wenn das geklärt ist, setze ich mich heute Abend/Nacht da gerne noch mal dran.

Gruß
Kauz
0 Punkte
Beantwortet von benjaminm Mitglied (631 Punkte)
Hallo Kauz,

Das was dir angezeigt wird ist richtig und wird im VBA dann durch die Schriftart Code 128DH
in eine Strich/Barcode umgewandelt.
Mein Chef wollte auf der Basis der Originaldaten nun die Abmaße der Zellen geändert haben
und nun soll KEIN Barcode mehr angedruckt werden, sonder ein beliebiger Text z.B. "Sicherheitssiegel".

Deshalb war ich ja auch Buff, weil ich im Anfang davon ausging das es wieder um Barcodes geht.

Nun soll aber normaler Text angedruckt werden, und das ging bei mir nicht siehe Antwort2
Laufzeitfehler.

Meinst du du bekommst da was hin?

MfG
Benjamin
0 Punkte
Beantwortet von kauz Mitglied (291 Punkte)
Hallo Benjamin,

die Zelle "D22" ist der Startwert für die nächste Ausgabe... also Numerisch.....
von dem Wert aus wird hochgezählt.

Wenn ich als Startwert einen Text wähle, ("Sicherheitssiegel") wo bekomme ich den nächsten Text her??
Der Compi weiß nicht, ob erst "Birnen" oder "Äpfel" dran sind....
der 'weiß' nur, erst kommt 2 und danach 3.

Es ist dafür also, wie schon erwähnt eine 'Datenbank' nötig, die eine Verknüpfung zum Zahlenwert beinhaltet.

Es sei denn, es gibt X-mal einen Code (SID-Zeile), der den gleichen Text haben soll.

Bislang ist mir der tiefere Sinn dafür noch schleierhaft.

Gruß
Kauz
0 Punkte
Beantwortet von benjaminm Mitglied (631 Punkte)
Hallo Kauz,

ich probiere es zu erklären:

ich habe Etiketten auf die jetzt ein Text ein Logo und eine fortlaufende Nummer (8Stellig)sollen.
Text und Logo bleibt immer gleich! (Text steht aber noch nicht fest)
Da wir diese ExcelDaten für Barcodes schon hatten, sagte mein Chef das diese abgeändert werden soll.
(zu dem Zeitpunkt wusste ich leider noch nicht das es sich bei der Ausführung jetzt nicht um Barcodes handelt
sonder um einen Text.)

Da ich mir bestehende Codes etwas anpassen kann, hab ich mich da mal rangesetzt. jedoch mit dem jetztigen geht das mit diesem
Text nicht. und mir fehlen die Ansätze zum lösen dieses Problems.

Ich würde die ganze Sache eigentlich als eigenes ExcelTB anlegen, jedoch die fortlaufende Nummer fehlt mir dann.
Wenn wir also die Zeilen mit dem SID 10000000 behalten, haben wir das schon mit der vortlaufenden NR.
Aber das mit dem Textin die Zeile mit dem Barcode????

Hoffe es ist jetzt etwas verständlicher

MfG Benjamin
0 Punkte
Beantwortet von kauz Mitglied (291 Punkte)
Hallo Benjamin...
hab eine Möglichkeit der freien Texteingabe auf dem Blatt 'Configuration' geschaffen.
Dieser Text wird auf jedem Etikett als erste Zeile gedruckt.

Es kann für die beiden Textzeilen getrennt eine Schriftgöße eingegeben werden (min. 10)

Die Eigenschaft <Showmodal> des Bedienpaneels bzw. der Userform ist auf FALSE gesetzt.
Damit kann man auch bei aktiver Userform noch auf dem Tabellenblatt arbeiten.
(HINWEIS: In der Excelversion 97 erzeugt das allerdings eine Fehlermeldung...
dafür müßte ich das dann wieder rausnehmen)

Mit dem Commandbutton auf dem Blatt 'Configuration' lässt sich die Userform öffnen....
man muß also nach einer Parameteränderung nicht mehr wie geschrieben die Tabelle speichern und wieder neu starten.

Hier gibt es die Datei:
http://www.file-upload.net/download-2431154/SID_Barcode_Klebeetiketten_NEU2.xls.html

Schau's Dir an, dann sehen wir weiter :-)

Gruß
Kauz
0 Punkte
Beantwortet von benjaminm Mitglied (631 Punkte)
Hallo Kauz,

Ich habe probleme beim öffnen der Datei!

Ich habe office 2007, die Original Datei war aus 97 (.xml)
Könntest du mir das als .xmlx schicken?

Dann müsste das mit der Userform auch funtzen.
Wie gesagt beim Öffen Fehler es kommt:

Fehler beim Kompilieren
Projekt oder Bibliothek nicht gefunden.


Danke Benjamin
0 Punkte
Beantwortet von benjaminm Mitglied (631 Punkte)
Sorry,

vertippt Dateiändungen sind alt .xls
das Neue .xlsm

Gruß Benjamin
0 Punkte
Beantwortet von kauz Mitglied (291 Punkte)
...