Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
580to584
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
580to584
580to584
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Druckt falsch!!!

VBA Druckt falsch!!!
09.03.2005 10:51:22
Grevi
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

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
So was von doppelt....
09.03.2005 11:15:52
doppelt....
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
AW: So was von doppelt....
09.03.2005 11:19:14
doppelt....
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
AW: So was von doppelt....
09.03.2005 11:23:10
doppelt....
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
Anzeige
AW: So was von doppelt....
09.03.2005 11:43:29
doppelt....
Hallo Volker,
ich glaube die Mailbenachritigung muß separat eingeschaltet werden.
Disskusion darüber im Forum Technik anfangen, falls Bedarf.
Gruß Hajo
AW: ließ mal Deine Antworten
09.03.2005 11:23:06
Grevi
Hi Volker!
Danke für die Antwort gerade! Probiere das jetz mal aus! Vllt klappt es ja!
Gebe dann Rückantwort!
MfG Grevi
Ne das haut nicht hin!
09.03.2005 11:31:25
Grevi
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
Anzeige
AW: Ne das haut nicht hin!
09.03.2005 11:51:19
Volker
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
Anzeige
AW: Ne das haut nicht hin!
09.03.2005 11:58:37
Grevi
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
Anzeige
AW: Ne das haut nicht hin!
09.03.2005 12:02:03
UweD
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
Anzeige
AW: Ne das haut nicht hin!
09.03.2005 12:36:16
Grevi
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
@ Uwe:Achso ich verstehe!
09.03.2005 12:47:06
Grevi
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
AW: @ Uwe:Achso ich verstehe!
09.03.2005 13:24:51
UweD
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
Anzeige
AW: @ Uwe:Achso ich verstehe!
09.03.2005 14:01:24
UweD
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
Anzeige
AW: @ Uwe:Achso ich verstehe!
09.03.2005 14:12:59
Grevi
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
AW: @ Uwe:Achso ich verstehe!
09.03.2005 14:38:12
Volker
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
AW: @ Volker
10.03.2005 07:58:19
Grevi
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
Anzeige
AW: @ Volker
10.03.2005 09:47:25
Volker
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
AW: VBA Druckt falsch!!!
09.03.2005 13:32:06
Volker
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
AW: VBA Druckt falsch!!!
09.03.2005 14:00:21
Grevi
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige