AW: VBA führt Druckbefehl falsch aus!
08.03.2005 16:51:10
Volker
Hallo Grevi,
ich bin's wieder.
Im Schreiben in Txt-files bin ich zwar nicht so fit, aber das kriegen wir schon hin.
Zuerst mal ein Tip: wenn Dein Code nicht das macht, was Du willst, kannst Du ihn mit F8 einzeln abarbeiten. Durch klick auf den linken Rand kannst Du Haltepunkte setzen.
Wenn Du mit dem Cursor auf eien Variable gehst, wird ihr Wert angezeigt.
Hab mal ein bisschen rumprobiert und ein paar bugs gefunden:
Wenn Du innerhalb der Schleife dein file löscht, ist natürlich alles futsch, was bis zum next i drin gestanden hat und öffnen mußt Du es auch nur einmal.
also:
If Dir("D:\BARCODE.TXT") "" Then
Kill "D:\BARCODE.TXT"
End If
FileNum = FreeFile
Open "D:\BARCODE.TXT" For Output As #FileNum
gehören vor die Schleife.
Und schließen solltest Du das file natürlich erst nach der Schleife:
Next i
Close #FileNum ' close the file
End Sub
Hier noch mal das Ganze komplett:
Private Sub cmb_Starten_Click()
Dim InventurNr As String
Dim LogischerName As String
Dim IP_Adresse As String
Dim Speicher As String
Dim System As String
Dim iMax As Integer
Dim i As Integer
Dim FileNum As String
Dim Bereich As String
Dim Zeile As Integer
Dim Spalte As Integer
Zeile = ActiveCell.Row
MsgBox "Die 1 Zeile im markierten Bereich ist: " & Zeile
Bereich = Selection.Address(0, 0)
Worksheets!Tabelle2.Cells(1, 1) = Bereich
Range(Bereich).Activate 'ist überflüssig, da schon selectiert
i = CInt(Mid(Bereich, 2, 1))
iMax = CInt(Mid(Bereich, 5, 1))
If Dir("D:\BARCODE.TXT") <> "" Then
Kill "D:\BARCODE.TXT"
End If
FileNum = FreeFile
Open "D:\BARCODE.TXT" For Output As #FileNum
For i = i To iMax
InventurNr = Worksheets!Tabelle1.Cells(Zeile, 1).Value
LogischerName = Worksheets!Tabelle1.Cells(Zeile, 2).Value
IP_Adresse = Worksheets!Tabelle1.Cells(Zeile, 3).Value
System = Worksheets!Tabelle1.Cells(Zeile, 4).Value
Speicher = Worksheets!Tabelle1.Cells(Zeile, 5).Value
Print #FileNum, Chr(2) & "m" & Chr(10) ' & Chr(13)
Print #FileNum, Chr(2) & "S2" & Chr(10) ' Chr(13)
Print #FileNum, Chr(2) & "L" & Chr(10) ' Chr(13)
Print #FileNum, Chr(2) & "L" & Chr(10) ' Chr(13)
Print #FileNum, "PC" & Chr(10) ' Chr(13)
'-- Allgemeine Groesse
Print #FileNum, "D11" & Chr(10) ' Chr(13)
'-- Druck Intednsitaet Druckkopf Temperatur
Print #FileNum, "H20" & Chr(10) ' Chr(13)
'-- Offset rechter Rand
Print #FileNum, "C0000" & Chr(10) ' Chr(13)
'-- on every row
'-- Druck von links-unten
'-- Druck id |yyyyxxxx
Print #FileNum, "161100002400025" & Trim(InventurNr) & Chr(10) ' Chr(13)
Print #FileNum, "141100002700270" & Trim(LogischerName) & Chr(10) ' Chr(13)
Print #FileNum, "131100001700025" & "IP_Adresse: " & Trim(IP_Adresse) & Chr(10) ' Chr(13)
Print #FileNum, "131100001300025" & "Speicher: " & Trim(Speicher) & Chr(10) ' Chr(13)
Print #FileNum, "131100000900025" & "System: " & Trim(System) & Chr(10) ' Chr(13)
Print #FileNum, "1a6208000180025" & InventurNr & LogischerName & Chr(13) & Chr(10) ' Chr(13)
Print #FileNum, Chr(2) & "E" & Chr(10) ' Chr(13)
Print #FileNum, Chr(13) & Chr(10) ' Chr(13)
'Close #FileNum ' close the file 'siehe unten
'Shell (Environ$("COMSPEC") & " /c " & "Copy c:\temp\barcode.txt \\k100\tmp\barcode")
'Shell (Environ$("COMSPEC") & " /c " & "rsh k100 -l tbnw -n lp -dbar1 /tmp/barcode/barcode.txt")
Zeile = Zeile + 1
Next i
Close #FileNum ' close the file
End Sub
Bin gespannt, ob's jetzt geht
Gruß
Volker