Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Verweis auf Brother Label-Drucker b-PAC

Forumthread: VBA Verweis auf Brother Label-Drucker b-PAC

VBA Verweis auf Brother Label-Drucker b-PAC
13.02.2017 10:45:33
Flo
Hallo zusammen,
ich hab mal wieder ein kleines Problem :)
Ich habe gerade ein Projekt am Laufen, bei dem ich von einer übergeordneten Stelle eine Excel Datei (Master-Datei) zur Verfügung gestellt bekomme.
Diese Datei kann im Aufbau und Struktur nicht verändert werden weil sie überregional von mehreren Abteilungen bearbeitet werden muss.
Selbst das ein und ausblenden von Spalten ist nur umständlich möglich.
Jetzt hatte ich die Idee ein Add-In zu erstellen, bei dem ich die Funktionen der starren Liste etwas erweitern kann.
Hab auch schon einige Punkte gelöst aber bei einem bleib ich gerade hängen.
Ich möchte aus der Liste heraus einen Brother P-Touch Drucker ansteuern und ein Etikett drucken.
Hab dazu auf der Brother Seite ein b-PAC Entwicklertool gefunden und auch gleich eines der VBA-Beispiele auf meine Bedürfnisse angepasst.
Hat auch im Test alles super funktioniert, nur wenn ich das Makro dann als Ribbon einbinde und meine Master-Datei dann öffne und das Makro ausführe kommt ein Debugg-Fehler - Verweis nicht gefunden. Nachdem ich die Brother b-PAC 3.0 Typ Library dann ausgewählt habe funktioniert es.
Wenn ich die Datei schließe und wieder öffne hat er den Verweis wieder verloren.
Kann ich das irgendwie lösen oder muss der Verweis in der Master-Liste hinterlegt werden?
Hier der Code:
'-----------------------------------------------------------------------------------------
' b-PAC 3.0 Component Sample
' (C)Copyright Brother Industries, Ltd. 2009
'-----------------------------------------------------------------------------------------
Option Explicit
Const sPath = "C:\Users\***\Sample.lbx"
Private Sub Aufkleber(control As IRibbonControl)
Dim bRet As Boolean
Dim ObjDoc As bpac.Document
Set ObjDoc = CreateObject("bpac.Document")
'Open lbx file
bRet = ObjDoc.Open(sPath)
If (bRet  False) Then
' Determine how many rows the user selected
Dim iTotal As Integer
iTotal = Selection.Rows.Count
' Start Print-Setting
ObjDoc.StartPrint "", bpoDefault
Dim r As Integer
For r = 1 To iTotal
Dim Str As String
Dim iRow As Integer
' E
iRow = Selection.Cells(r, 1).Row
Str = Cells(iRow, 4).Text
ObjDoc.GetObject("E").Text = Str
' M
Str = Cells(iRow, 2).Text
ObjDoc.GetObject("M").Text = Str
' Register to print
ObjDoc.PrintOut 1, bpoDefault
Next
' Finish Print-Setting.iStart the printing.j
ObjDoc.EndPrint
' Close lbx file
ObjDoc.Close
End If
End Sub

Vielen Dank für eure Hilfe.
Gruß Flo
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Verweis auf Brother Label-Drucker b-PAC
13.02.2017 12:14:54
onur
Hi,
Vielleicht solltest du die library in dein AddIn einbinden.
AW: VBA Verweis auf Brother Label-Drucker b-PAC
17.02.2017 16:50:20
Flo
Hallo Onur,
wie kann ich die library den direkt in das AddIn einbinden.
Gruß Flo
AW: VBA Verweis auf Brother Label-Drucker b-PAC
17.02.2017 16:55:41
onur
Hi Flo,
Gegenfrage : "Nachdem ich die Brother b-PAC 3.0 Typ Library dann ausgewählt habe" - wie und wo machst du das denn?
Gruß
Onur
Anzeige
AW: VBA Verweis auf Brother Label-Drucker b-PAC
17.02.2017 17:34:28
Flo
Über VBA - Extras - Verweise...
Hier steht dann die "Brother b-PAC 3.0 Typ Library" zur Auswahl
AW: VBA Verweis auf Brother Label-Drucker b-PAC
17.02.2017 17:43:42
onur
Hi,
z.B. so:
Sub TestFile()
AddReferenceFromFile "C:\Program Files (x86)\Windows Media Components\Encoder\wmenc.exe"  '  _
_
Windows Media Encoder"
End Sub
Den genauen Pfad siehst du beim einbinden der Library unten im Fenster.
Anzeige
AW: VBA Verweis auf Brother Label-Drucker b-PAC
17.02.2017 18:27:31
Flo
Hi,
wenn ich das so teste:
Sub TestFile()
AddReferenceFromFile "C:\Program Files (x86)\Common Files\Brother\b-PAC\bpac.dll\1"  ' _
_
Brother b-PAC Library""
End Sub
Kommt ein Fehler beim Kompilieren Sub oder Function nicht definiert
AW: VBA Verweis auf Brother Label-Drucker b-PAC
17.02.2017 18:52:48
onur
Hi,
Kannst du datei+die dll posten?
Anzeige
AW: VBA Verweis auf Brother Label-Drucker b-PAC
13.02.2017 12:21:49
fcs
Hallo Flo,
der Verweis auf die Drucker-Objekt-Bibliothek muss in der Datei mit dem Makro gesetzt und gespeichert werden.
Ich hab aber noch keine Erfahrungen mit AddIns in dieser Richtung.
Wenn die Drucker-Objekt-Bibliothek korrekt registriert ist. Sollte der Fall sein, wenn du im VBA-Editor unter VBA-Extras den Verweis setzen kannst, dann versuche mal die Variablen-Deklaration zu ändern.
In diesem Fall benötigst du den Verweis auf die Bibliothek nicht und Excel/VBA sucht sich die erforderlichen Informationen für das Objekt erst bei der Ausführung des Markros zusammen.
    Dim ObjDoc As Object 'bpac.Document

Vorher musst du aber das Makro mal im Schrittmodus starten bzw. einen Haltpunkt setzen.
Dann musst du die Werte der bpac-spezifischen Konstanten (z.B. bpoDefault) ermitteln (einfach mit der Maus drüber hoovern, wenn das Makro die Ausführung unterbricht.
Anschließend musst du dann im Code die entsprechenden Variablen durch die ermittelten Werte ersetzen.
Toi-toi-toi bei der Umsetzung
LG
Franz
Anzeige
AW: VBA Verweis auf Brother Label-Drucker b-PAC
17.02.2017 16:48:37
Flo
Hallo Franz,
danke für deine Antwort. Ich bin leider erst jetzt wieder dabei das Problem zu lösen.
Leider kenne ich mich mit VBA noch nicht soooo gut aus.
Könntest du mir evtl. erkläre womit ich das
Dim ObjDoc As Object 'bpac.Document
austauschen soll.
Vielen Dank!
Gruß Flo
Anzeige
AW: VBA Verweis auf Brother Label-Drucker b-PAC
18.02.2017 04:59:24
fcs
Hallo Flo,
das Makro muss mit modifizierter Variablendefinition wie folgt aussehen.
Soweit ich auf die Schnelle feststellen konnte hat die Varaible bpoDefault den Wert "0"
Das musst du aber nochmals prüfen, indem du bei der funktionierenden Makro-Version im VBA-Editor einen Haltepunkt setzt und dann das Makro ausführst. Du kannst dann den Wert sehen wenn du über die Variable hooverst. Alternativ kannst du im VBA-Editor unter Ansicht "Objektkatalog" in der Bibliothek "bpac" nach entsprechenden Begriffen suchst - z.B. bpoDefault .
LG
Franz
'-----------------------------------------------------------------------------------------
' b-PAC 3.0 Component Sample
' (C)Copyright Brother Industries, Ltd. 2009
Option Explicit
Const sPath = "C:\Users\***\Sample.lbx"
Private Sub Aufkleber(control As IRibbonControl)
Dim bRet As Boolean
Dim ObjDoc As Object '   bpac.Document        '####
Set ObjDoc = CreateObject("bpac.Document")
'Open lbx file
bRet = ObjDoc.Open(sPath)
If (bRet  False) Then
' Determine how many rows the user selected
Dim iTotal As Integer
iTotal = Selection.Rows.Count
' Start Print-Setting
ObjDoc.StartPrint "", "0"     '#### bpoDefault durch Wert ersetzen
Dim r As Integer
For r = 1 To iTotal
Dim Str As String
Dim iRow As Integer
' E
iRow = Selection.Cells(r, 1).Row
Str = Cells(iRow, 4).Text
ObjDoc.GetObject("E").Text = Str
' M
Str = Cells(iRow, 2).Text
ObjDoc.GetObject("M").Text = Str
' Register to print
ObjDoc.PrintOut 1, "0"     '#### bpoDefault durch Wert ersetzen
Next
' Finish Print-Setting.iStart the printing.j
ObjDoc.EndPrint
' Close lbx file
ObjDoc.Close
End If
End Sub

Anzeige
;
Anzeige

Infobox / Tutorial

VBA Verweis auf Brother Label-Drucker b-PAC


Schritt-für-Schritt-Anleitung

  1. Verweis hinzufügen: Öffne den VBA-Editor in Excel (ALT + F11). Gehe zu Extras > Verweise... und wähle die "Brother b-PAC 3.0 Typ Library" aus. Dies stellt sicher, dass dein Makro auf die notwendigen Funktionen zugreifen kann.

  2. Code anpassen: Stelle sicher, dass dein VBA-Code wie folgt aussieht, um die Brother b-PAC Dokumente zu erstellen und zu drucken:

    Option Explicit
    Const sPath = "C:\Users\***\Sample.lbx"
    
    Private Sub Aufkleber(control As IRibbonControl)
        Dim bRet As Boolean
        Dim ObjDoc As Object ' bpac.Document
        Set ObjDoc = CreateObject("bpac.Document")
    
        ' Open lbx file
        bRet = ObjDoc.Open(sPath)
        If (bRet <> False) Then
            ' Determine how many rows the user selected
            Dim iTotal As Integer
            iTotal = Selection.Rows.Count
    
            ' Start Print-Setting
            ObjDoc.StartPrint "", "0" ' bpoDefault durch Wert ersetzen
            Dim r As Integer
    
            For r = 1 To iTotal
                Dim Str As String
                Dim iRow As Integer
    
                ' E
                iRow = Selection.Cells(r, 1).Row
                Str = Cells(iRow, 4).Text
                ObjDoc.GetObject("E").Text = Str
    
                ' M
                Str = Cells(iRow, 2).Text
                ObjDoc.GetObject("M").Text = Str
    
                ' Register to print
                ObjDoc.PrintOut 1, "0" ' bpoDefault durch Wert ersetzen
            Next
    
            ' Finish Print-Setting
            ObjDoc.EndPrint
            ' Close lbx file
            ObjDoc.Close
        End If
    End Sub
  3. Makro testen: Füge einen Haltepunkt in dein Makro ein und starte es im Schrittmodus, um sicherzustellen, dass alle Variablen korrekt gesetzt sind.


Häufige Fehler und Lösungen

  • Verweis nicht gefunden: Wenn du beim Ausführen des Makros den Fehler "Verweis nicht gefunden" erhältst, stelle sicher, dass die Brother b-PAC Typ Library korrekt ausgewählt und registriert ist.

  • Kompilierungsfehler: Ein Fehler wie "Sub oder Function nicht definiert" kann auftreten, wenn der Pfad zur b-PAC DLL nicht korrekt angegeben ist. Überprüfe den Pfad und stelle sicher, dass die Datei vorhanden ist.

  • Objekt nicht gefunden: Falls du eine lbx-Datei nicht öffnen kannst, vergewissere dich, dass der Dateipfad korrekt ist und dass die Datei nicht beschädigt ist.


Alternative Methoden

Wenn du Schwierigkeiten mit der b-PAC Bibliothek hast, gibt es auch alternative Methoden, um Etiketten zu drucken:

  • P-Touch Editor: Du kannst den P-Touch Editor verwenden, um mehrere Etiketten zu erstellen. Excel kann als Datenquelle dienen, und du kannst die Etiketten direkt über die Software drucken.

  • VBA ohne Verweis: Verwende Dim ObjDoc As Object anstelle von Dim ObjDoc As bpac.Document. Dies ermöglicht es dir, das Objekt zur Laufzeit zu erstellen, ohne einen festen Verweis zu benötigen.


Praktische Beispiele

  1. Etiketten für Produkte drucken: Du kannst die Daten aus einer Excel-Liste verwenden, um Etiketten für verschiedene Produkte zu drucken. Achte darauf, die richtigen Zellen in deinem Makro anzusprechen.

  2. Adressetiketten erstellen: Die Verwendung von p-touch excel zur Erstellung von Adressetiketten ist ebenfalls möglich. Du kannst das Makro anpassen, um die entsprechenden Adressdaten zu drucken.

  3. Daten in lbx-Datei umwandeln: Wenn du eine lbx-Datei hast, kannst du diese mit dem P-Touch Editor öffnen und die Etiketten direkt daraus drucken.


Tipps für Profis

  • Makros optimieren: Du kannst dein Makro optimieren, indem du unnötige Berechnungen vermeidest und nur die erforderlichen Zellen abfragst.

  • Sicherheitskopien: Erstelle Sicherungskopien deiner lbx-Dateien, bevor du Änderungen vornimmst.

  • Dokumentation: Halte eine Dokumentation über die verwendeten Codes und Bibliotheken bereit, falls du das Projekt später erneut bearbeiten musst.


FAQ: Häufige Fragen

1. Wie kann ich die lbx-Datei umwandeln?
Um eine lbx-Datei zu öffnen, kannst du den P-Touch Editor verwenden. Dort kannst du die Datei auch bearbeiten und drucken.

2. Was tun, wenn ich keine Brother b-PAC Typ Library finde?
Vergewissere dich, dass die Software korrekt installiert ist. Du kannst die aktuellste Version von der Brother-Website herunterladen und installieren.

3. Kann ich das Makro für andere Drucker verwenden?
Das Makro ist speziell für den Brother P-Touch Drucker konzipiert. Für andere Drucker müsstest du den Code entsprechend anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige