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