Sub Barcodes_erzeugen()
'
' Barcodes_erzeugen Makro
'
'
Dim i As Integer
Dim AnzahlProSeite As Integer
Dim Seitenzahl As Integer
Dim PENummer As Variant
Dim Datum As Date
Dim Zeichenkette As Variant
Dim Code As Variant
Datum = Date
AnzahlProSeite = 64
Seitenzahl = 1
PENummer = Eingabewerte.StartPENummer.Value
Datum = Eingabewerte.Druckdatum.Value
i = 1
j = 1
While j <= Seitenzahl
While i <= AnzahlProSeite
'Zeichenkette = "XXXXX_" & Datum
Zeichenkette = "XXXXX_" & PENummer & "_" & Datum
Code = "L-" & PENummer & "-" & Datum
Selection.Font.Name = "Bar-Code 39"
Selection.Font.Size = 12
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.TypeText Text:=Code39(Code)
Selection.Font.Name = "Arial"
Selection.TypeText Text:=" "
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.Font.Size = 9
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.TypeText Text:=Zeichenkette
PENummer = PENummer + 1
i = i + 1
j = j + 1
If i > AnzahlProSeite Then
Application.Quit
Else
Feldwechsel
End If
Wend
Wend
End Sub
Function Code39(ByVal yourData As String) As String
Code39 = "*" & yourData & "*"
End Function
mamo hat geschrieben:leider bekomme ich es unter OO nicht zum Laufen.
Das ist nicht mein Thema, deshalb kann ich keinesfalls helfen. Aber wenn du Hilfe erwartest, solltest du auf jeden Fall mehr Informationen liefern: Was hast du versucht? Woran erkennst du, dass es "nicht zum Laufen" kommt? Falscher Barcode, Text statt Barcode, Basic-Fehlermeldung beim Kompilieren, Abbruch des Makros zur Laufzeit, Fehlermeldung dabei und Stelle im Code, an der der Fehler auftritt, Inhalte der Variablen an dieser Stelle (erwartet und tatsächlich)?
Das sind nur die Punkte, die mir auf die Schnelle einfallen. Anderen fallen sicherlich weitere Unklarheiten auf. Also bitte: Hilf uns, damit wir helfen können! Jürgen
PS. Ein "schönes" Makro könnte es nur dann sein, wenn es ausreichend kommentiert wäre
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Sub Barcodes_erzeugen()
'
' Barcodes_erzeugen Makro
'
'
Dim i As Integer
Dim AnzahlProSeite As Integer
Dim Seitenzahl As Integer
Dim PENummer As Variant
Dim Datum As Date
Dim Zeichenkette As String
Dim Code As Variant
Dim oStartPENummer as Object
Dim oDocument as Object
Dim oText as Object
Dim oCursor as Object
Dim oVCursor as Object
Dim oVC as Object
Datum = Date
AnzahlProSeite = 64
Seitenzahl = 1
rem PENummer = Eingabewerte.StartPENummer.Value
PENummer = DlgEingabewerte.getControl("StartPENummer").Text
Datum = DlgEingabewerte.getControl("Druckdatum").Text
i = 1
j = 1
While j <= Seitenzahl
While i <= AnzahlProSeite
REM erste Zeile
'Zeichenkette = "XXXXX_" & Datum
Zeichenkette = "XXXXX_" & PENummer & "_" & Datum
Code = "L-" & PENummer & "-" & Datum
oDocument = thisComponent
oVC = oDocument.getCurrentController.getViewCursor
oText = oVC.text
oDocument.GetCurrentController.ViewCursor.CharFontName = "Bar-Code 39"
oDocument.GetCurrentController.ViewCursor.CharHeight = "12"
oDocument.GetCurrentController.ViewCursor.ParaAdjust = "center"
oText.insertString(oVC, Code39(Code), false)
oDocument.GetCurrentController.ViewCursor.CharFontName = "Arial"
oText.insertString(oVC, " ", false)
oDocument.GetCurrentController.ViewCursor.goDown(1, false)
oDocument.GetCurrentController.ViewCursor.CharHeight = "9"
oDocument.GetCurrentController.ViewCursor.ParaAdjust = "center"
oText.insertString(oVC, Code39(Code), false)
rem oText = thisComponent.getText
rem oCursor = oText.createTextCursorByRange(oText.getStart)
rem oCursor.string = "blabla" 'Code39(Code)
rem oDocument.GetCurrentController.ViewCursor.text = "blabls"
rem Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
rem Selection.TypeText Text:=Code39(Code)
REM nächste Zeile
rem Selection.Font.Name = "Arial"
rem Selection.TypeText Text:=" "
rem Selection.MoveDown Unit:=wdLine, Count:=1
rem Selection.Font.Size = 9
rem Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
rem Selection.TypeText Text:=Zeichenkette
PENummer = PENummer + 1
i = i + 1
j = j + 1
If i > AnzahlProSeite Then
Application.Quit
Else
Feldwechsel
End If
Wend
Wend
End Sub
Function Code39(ByVal yourData As String) As String
Code39 = "*" & yourData & "*"
End Function
Function Feldwechsel()
REM If Selection.Information(wdWithInTable) = True Then
REM Selection.MoveRight Unit:=wdCell, Count:=1, Extend:=wdMove
REM End If
End Function
Hallo
Ich brauch jetzt auch keinen stundenlangen Frust + dutzende Rückfragen an dich um irgendeinen **** VBA-code zu übersetzen.
Wenn ich dein Beispiels-doc richtig interpretiere, sollte sich das alles (makrofrei) und relativ einfach in Form eines Serienbriefdokuments( Etiketten ) umsetzen lassen.
Karolus
LO7.4.7.2debian 12(bookworm) auf Raspberry5 8GB (ARM64) LO25.2.3.2 flatpakdebian 12(bookworm) auf Raspberry5 8GB (ARM64)