VBA Druckt falsch!!!

Bild

Betrifft: VBA Druckt falsch!!!
von: Grevi
Geschrieben am: 09.03.2005 10:51:22
Hey Leute!!!!
Ich habe ein Problem! Und zwar folgendes: Ich habe die unten stehende Programmierung vorgenommen!
Das Programm bezieht sich auf eine Tabelle, in der man einen Bereich markiert hat! Wenn man das Programm ausführt, soll es alle Zelle im markierten Bereich einzelnd auf ein Etikett drucken! Das heißt:
A1 = Hallo!!!
A2 = Du!!!
A3 = Du da!!!
Jetzt soll der im ersten Durchlauf der Schleife das drucken, was in Zelle A1 steht, im zweiten das was in Zelle A2 steht und so weiter!
Wenn ich jetzt einen Bereich von A2:A8 markiert habe, druckt mir das Programm jedoch folgendes aus!!!
A2 = Hallo!
A3 = Hallo!
.....
.....
.....
A8 = Schniepi!
Er druckt mir 7 x das aus, was in der vom Bereich letzten markierten Zelle steht! Also in dem Fall hier in A8! Aber das ist ja völlig falsch! Er soll mir ja jeweils das ausdrucken, was ich markiert habe! Also wie oben schon mal gesagt:
A1 = Hallo!!!
A2 = Du!!!
A3 = Du da!!!
Er soll dann ein Etikett mit A1 bedrucken, das nächste mit A2 und und und!
Woran kann das liegen???
MfG Grevi
Hier mein Programm Code:
Option Explicit


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
    Dim a As String
    
    Zeile = ActiveCell.Row
    Bereich = Selection.Address(0, 0)
    Worksheets!Tabelle2.Cells(1, 1) = Zeile
    i = CInt(Zeile)
    a = (Right(Bereich, Len(Bereich) - InStr(Bereich, ":")))
    Worksheets!Tabelle2.Cells(1, 2) = a
    iMax = CInt(Mid(a, 2, 2))
       
    For i = i To iMax
    If Dir("C:\TEMP\BARCODE.TXT") <> "" Then
    Kill "C:\TEMP\BARCODE.TXT"
    End If
       
    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
    
    FileNum = FreeFile
    Open "C:\TEMP\BARCODE.TXT" For Output As #FileNum
    
    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
    
    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
   
End Sub

Bild

Betrifft: So was von doppelt....
von: Volker
Geschrieben am: 09.03.2005 11:15:52
also wenn jemand mit einer Antwort nichts anfangen kann, soll er das sagen.
Aber null feedback und dann die Frage exakt so stellen wie am Vortag ist nicht gerade höflich.
Ich hab mir die Mühe gemacht, deinen Code zu verstehen und hab entsprechende Änderungen gemacht. Davon hast Du aber nichts übernommen. Soll jetzt jemand anderer das ganze nochmal durchexerzieren?
Volker
Bild

Betrifft: AW: So was von doppelt....
von: Grevi
Geschrieben am: 09.03.2005 11:19:14
Hi Volker!!!!
Dann musst du die Antwort gestern gegeben haben, als ich nicht mehr am Arbeitsplatz war! Habe da heute morgen nicht nach geguckt! Habe ich vergessen!
MfG Grevi
Bild

Betrifft: AW: So was von doppelt....
von: Volker
Geschrieben am: 09.03.2005 11:23:10
Na gut, vertragen wir uns wieder.
Aber eigentlich hast Du bei der Registrierung doch 'ne mail hinterlassen, solltest also mitkriegen, wenn sich in deinem Beitrag was tut.
Ein Tip: Du kannst auch nach Deinem Namen suchen und siehst so, ob es was neues gibt.
Tschau
Volker
Bild

Betrifft: AW: So was von doppelt....
von: Hajo_Zi
Geschrieben am: 09.03.2005 11:43:29
Hallo Volker,
ich glaube die Mailbenachritigung muß separat eingeschaltet werden.
Disskusion darüber im Forum Technik anfangen, falls Bedarf.
Gruß Hajo
Bild

Betrifft: ließ mal Deine Antworten
von: Volker
Geschrieben am: 09.03.2005 11:19:31
Guckst Du hier Grevi, alias Johannes Paulix:
https://www.herber.de/forum/index.htm?https://www.herber.de/forum/messages/582060.html
Bild

Betrifft: AW: ließ mal Deine Antworten
von: Grevi
Geschrieben am: 09.03.2005 11:23:06
Hi Volker!
Danke für die Antwort gerade! Probiere das jetz mal aus! Vllt klappt es ja!
Gebe dann Rückantwort!
MfG Grevi
Bild

Betrifft: Ne das haut nicht hin!
von: Grevi
Geschrieben am: 09.03.2005 11:31:25
Hi Volker!
Also vor die Schleife kann das doch gar nicht kommen! Weil der ja wenn ich 4 Zeilen markiert habe in der Schleife erst einen Durchgang machen soll, dann das Drucken und dann den File wieder Löschen soll!
Im nächsten Durchlauf erstellt er dann wieder eine Datei die Leer ist! Im Laufe der Schleife wird die dann mit daten gefüllt, durch die im markierten Bereich 2 Zelle! Das wird dann widerrum wieder gedruckt usw!
MfG Grevi
Bild

Betrifft: AW: Ne das haut nicht hin!
von: Volker
Geschrieben am: 09.03.2005 11:51:19
Sorry, Du hast recht.
Ich hab meinen Code mal laufen lassen und da werden die Daten dann untereinander in das Textfile geschrieben.
Unter Drucken verstehst Du doch den Ausdruck auf Papier, oder?
Allerdings sehe ich nicht die entspr. Anweisung.
Ist es:
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")
oder was soll da passieren?
Was spricht eigentlich dagegen, aus Excel heraus zu drucken?
Du markierst die ent. Zellen und sagst "Drucken/Markierung"
Dafür mußt Du die Daten wahrscheinlich anders anordnen.
Bin leider bis nachmittags nicht mehr am Platz, bleib aber am Ball.
Gruß
Volker
Bild

Betrifft: AW: Ne das haut nicht hin!
von: Grevi
Geschrieben am: 09.03.2005 11:58:37
HI Volker!
Jo diese beiden Zeilen geben den Befehl:
"Hier sendet er die Daten aus der ersten Zelle im Durchlauf in die Datei temp\barcode.txt"
Shell (Environ$("COMSPEC") & " /c " & "Copy c:\temp\barcode.txt \\k100\tmp\barcode")
"Hier druckt er dann die Daten die in der Datei temp\barcode.txt stehen auf dem Drucker aus! Also auf Papier!!!
Shell (Environ$("COMSPEC") & " /c " & "rsh k100 -l tbnw -n lp -dbar1 /tmp/barcode/barcode.txt")
Ja dagegen spricht nichts! Aber ich will das alles mit nur einem Klick auf den Button den ich angelegt habe absolvieren! Also das soll schon so bleiben!
Bis denne MfG Grevi
Bild

Betrifft: AW: Ne das haut nicht hin!
von: UweD
Geschrieben am: 09.03.2005 12:02:03
Hallo

der Code schein in Ordnung:
Die Werte werden richtig in die TXT geschrieben.
Wo ein Problem bestehen kann, ist bei den Shell-Befehlen
Setz mal einen Spop an der angegebenen Stelle und sieh dir mal den Inhalt der Datei in den Originaldatei (c:\temp\barcode.txt)und nach dem Copy (auf dem Netzpfad) an (nach jedem Sritt) Wenn dort das richtige drinsteht, liegt es an dem zweiten shell-Befehl..
den kenn ich nicht.. Vermute ein Barcodeprogramm zur erzeugung des Ausdrucks..
'...
Shell (Environ$("COMSPEC") & " /c " & "Copy c:\temp\barcode.txt \\k100\temp\barcode")
Stop
Shell (Environ$("COMSPEC") & " /c " & "rsh k100 -l tbnw -n lp -dbar1 /tmp/barcode/barcode.txt")
'...
Gruß Uwe
Bild

Betrifft: AW: Ne das haut nicht hin!
von: Grevi
Geschrieben am: 09.03.2005 12:36:16
HI Uwe!!!
Was meinst du denn mit:
Setz mal einen Spop an der angegebenen Stelle und sieh dir mal den Inhalt der Datei in den Originaldatei
Verstehe ich nicht ganz!
Ja der zweite Befehl ist für den Ausdruck!
MfG Grevi
Bild

Betrifft: @ Uwe:Achso ich verstehe!
von: Grevi
Geschrieben am: 09.03.2005 12:47:06
Hi Uwe!!
Jetzt habe ich verstanden was du meinst! Habe das alles schon mal geprüft! Die Dateien werden alle richtig geschrieben! Also in C:\Temp\Barcode.txt
Also muss es am 2 "Sheel Befehl"liegen! Woran kann es denn da liegen? Hast du eine Ahnung?
MfG Grevi
Bild

Betrifft: AW: @ Uwe:Achso ich verstehe!
von: UweD
Geschrieben am: 09.03.2005 13:24:51
Hi
hast du auch mal die Kopie geprüft..?
Durch den ersten Shell-Befehl wird die Datei auf ein Netzlaufwerk kopiert und von dort durch den Zweiten Shell-Befehl dann "ausgedruckt"

Kann mir jetzt folgendes vorstellen.
Entweder beim zweiten Copyversuch wird die Datei auf dem Netzlaufwerk NICHT überschrieben. Das kann durch den /Y Parameter für den Copybefehl aber gelöst werden.
Shell (Environ$("COMSPEC") & " /c " & "Copy c:\temp\barcode.txt \\k100\temp\barcode /Y")

oder aber das Druckprogramm (durch den Aufruf aus dem zweiten Shellbefehl) gibt die Datei nicht frei, nachdem der Druck erfolgte. Und deshalb erfolgt kein Dateiupdate.
Da ich das Programm nicht kenne und auch mit den angegebenen Parametern nichts anfangen kann, .... sorry

Gruß UweD
Bild

Betrifft: AW: @ Uwe:Achso ich verstehe!
von: UweD
Geschrieben am: 09.03.2005 14:01:24
Hallo nochmal
hab noch mal recherchiert.
Der zweite shell befehl sieht ja so aus:
kann man auch im Dosfester so ausführen
rsh k100 -l tbnw -n lp -dbar1 /tmp/barcode/barcode.txt
Dabei ist (aus der Dos-Hilfe)

rsh
Führt Befehle auf Remotehosts aus, auf denen der RSH-Dienst aktiv ist.
RSH Host [-l Benutzername] [-n] Befehl
Host Gibt den Remotehost zur Befehlsausführung an.
-l Benutzername Gibt den Benutzernamen für den Remotehost an. Ohne Angabe
des Parameters wird der aktuelle Benutzername verwendet.
-n Leitet die Eingabe von RSH nach NULL um.
Befehl Gibt den auszuführenden Befehl an.

Da steig ich jetzt aus...
Du solltest denjenigen befragen, der dir den Shellbefehl zusammengebaut hat.

Gruß UweD
Bild

Betrifft: AW: @ Uwe:Achso ich verstehe!
von: Grevi
Geschrieben am: 09.03.2005 14:12:59
HI Uwe!!!
Danke für deine Mühe! Das Problem ist, das ich das Programm (also den Code) von einem anderen Programm kopiert habe, der so ähnlich arbeitet und auch am Ende druckt! Also den Befehl habe ich von niemandem sondern der war schon vorhanden!
MfG Grevi
Bild

Betrifft: AW: @ Uwe:Achso ich verstehe!
von: Volker
Geschrieben am: 09.03.2005 14:38:12
Hallo Grevi,
Ich fürchte, nach dieser Meldung von Uwe bin ich auch draußen.
Dieser Befehl ist was für Spezialisten oder für's Off-Topic.
Wobei ich nach wie vor der Meinung bin, dass mit deinen erzeugten files was nicht stimmt.
Viel Glück
Volker
Bild

Betrifft: AW: @ Volker
von: Grevi
Geschrieben am: 10.03.2005 07:58:19
GUTEN MORGEN ALLE ZUSAMMEN!
@Volker:
Also du meintest ja, das was mit meinen Files nicht stimmt! Ich hábe das alles geprüft! Er schreibt jeden einzelnen Eintrag aus der Zelle in eine Datei, druckt die dann, und löscht die Datei wieder. Dann erstellt er im nächsten Durchlauf wieder ne LEERE und das ganze geht dann immer so weiter!
Also bis zu dem Druckbefehl ist anscheinend alles Richtig! Jetzt kann eigentlich nur noch der Druckbefehl an sich ne Macke haben!
MfG Grevi
Bild

Betrifft: AW: @ Volker
von: Volker
Geschrieben am: 10.03.2005 09:47:25
Hallo Grevi,
ich nehm mal an, das es sich bei der Anwendung, an die Du den Druckbefehl schickst, um einen Druckertreiber handelt, ähnlich einem PDF-Drucker. Vielleicht gibt es dazu ja irgendwo eine Anleitung.
Google doch mal nach "COMSPEC". Vielleicht bist Du dann schlauer. Mir ist der ganze DOS-Kram leider ein Rätsel. Hier ist z.B. einer der 60.000 Treffer:
http://www.mipraso.de/enzyklopaedie/d/dos622/command.html
Ansonsten ist das, wie gesagt, ein Fall für die Spezialisten.
Gruß
Volker
Bild

Betrifft: AW: @ Volker
von: Neuer Beitrag..
Geschrieben am: 10.03.2005 11:30:11
hier gehts weiter:
https://www.herber.de/forum/messages/582972.html
Bild

Betrifft: AW: @ Volker
von: Neuer Beitrag..
Geschrieben am: 10.03.2005 11:39:12
hier gehts weiter:
https://www.herber.de/forum/messages/582972.html
Bild

Betrifft: AW: VBA Druckt falsch!!!
von: Volker
Geschrieben am: 09.03.2005 13:32:06
Hi Grevi,
Uwe hat, glaub' ich, recht: bei dem shell-Befehl handelt es sich um irgendeinen Aufruf einer ext. Anwendung. Wo hast Du das her?
Ich hab mal ein Bsp. gemacht, wo das Drucken auskommentiert ist.
mit dem 1. Makro schreibst Du alle Daten in ein file, mit dem 2. jeweils in ein anderes file.
https://www.herber.de/bbs/user/19399.xls
Mach Dir doch ein weiteres Makro, das die files aus C:\tmp ausdruck, um zu sehen, ob das geht.
Etwa so:
for i=1 to xyz
Shell (Environ$("COMSPEC") & " /c " & "rsh k100 -l tbnw -n lp -dbar1 /tmp/barcode/barcode" & i & ".txt")
next
Bin gespannt, was rauskommt.
Volker
Bild

Betrifft: AW: VBA Druckt falsch!!!
von: Grevi
Geschrieben am: 09.03.2005 14:00:21
Hi Volker! Hi Uwe!!!
@Volker!!!
Habe das mal ausprobiert! Bis jetz hat er nichts gemacht! Also bis jetzt ging es nicht!!!
Werde mal weiter suchen und probieren! Wenn ich noch fragen habe melde ich mich!
Gruß Grevi
 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA Druckt falsch!!!"