+ Antworten
Ergebnis 1 bis 12 von 12
Like Tree6x Danke

Virtual Basic - Drucker, 3 Seiten aus 3 Fächern drucken

Eine Diskussion über Virtual Basic - Drucker, 3 Seiten aus 3 Fächern drucken im Forum Technik Ecke. Teil des Off Topic-Bereichs; Hi, Mein Ziel ist, ein Dokument aus einem Drucker 3mal aus zu drucken. Aber die erste Kopie soll aus dem ...

  1. #1
    Veni vidi vici
    Avatar von VEILoPHyPER^
    Registriert seit
    16.06.2011
    Ort
    Bodensee
    Alter
    21
    Beiträge
    8.649
    Name
    Philipp
    Nick
    VEILoPHyPER^

    Virtual Basic - Drucker, 3 Seiten aus 3 Fächern drucken

    Hi,
    Mein Ziel ist, ein Dokument aus einem Drucker 3mal aus zu drucken.
    Aber die erste Kopie soll aus dem Bypass und die anderen beiden aus Fach "1".
    Habe jetzt mal das Script erstellt, aber da druckt er einfach 3 Seiten aus Fach 1..


    Code:
    Private Sub BLa_Click()
    
        Dim Drucker$, DDrucker$
    
        
        'Druckeranschluss ermitteln
         On Error Resume Next
            Drucker = Application.ActivePrinter
            For d = 0 To 20
                    Err = 0
                    Application.ActivePrinter = "\\xxx\xx auf Ne" & Format(d, "00") & ":"
                    
                    If Err = 0 Then
                            DDrucker = "\\xxx\xx auf Ne" & Format(d, "00") & ":"
                            Exit For
                    End If
          
            Next
            ActiveDocument.PageSetup.FirstPageTray = 3
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=DDrucker
            ActiveDocument.PageSetup.FirstPageTray = 1
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=DDrucker
           
            
            
        On Error GoTo 0
    
      
    
    
    End Sub
    Seht ihr da n Fehler
    Bzw mache ich grundsätzlich was falsch ?

    MFG

  2. #2
    UF Stubenkater
    Avatar von Thunderskull
    Registriert seit
    01.11.2004
    Ort
    Hückeswagen
    Alter
    33
    Beiträge
    25.801
    Name
    Christian
    Clans
    Bruderschaft von Nod
    Kannste mir die Überschrift mal eindeutschen? Also hat das wieder irgendwas mit programmieren zu tun da würd ich die Überschrift entsprechend anpassen ^^

  3. #3
    [ -Doppelaccount- ]
    Registriert seit
    18.04.2013
    Ort
    Im Trolololand
    Beiträge
    109
    Name
    FRag mal
    Nick
    Cooperi
    Clans
    TFE Global
    VBA = Visual Basic

    Ja hat was mit programmieren zutun. Sozusagen programmieren für Anfänger.
    Vote for TFFA im UF Clanforum!
    [SIGPIC][/SIGPIC]

  4. #4
    UF Stubenkater
    Avatar von Thunderskull
    Registriert seit
    01.11.2004
    Ort
    Hückeswagen
    Alter
    33
    Beiträge
    25.801
    Name
    Christian
    Clans
    Bruderschaft von Nod
    Ahhh jetzt ja. Kann ich selbst leider ned helfen aber hab den Titel mal aussagekräftiger gestaltet

  5. #5
    Gefreiter

    Registriert seit
    19.11.2011
    Beiträge
    145
    Verwende nicht 1 oder 3, sondern die Konstanten wdPrinterLowerBin und Freunde. Leider können diese Werte druckerabhängig sein, und ich kann dir nicht sagen, welche für deinen Drucker die richtigen sind. Du kannst dies versuchen herauszufinden, indem du ein Makro aufzeichnest, in dem du in den Druckereinstellungen das Druckerfach auswählst. Anschließend kannst du im Makro sehen, welche Werte verwendet werden.

    Zudem, wenn die Dokumente mehrere Seiten haben: "OtherPagesTray =" auch auf diesen wert setzen.

  6. #6
    [ -Doppelaccount- ]
    Registriert seit
    18.04.2013
    Ort
    Im Trolololand
    Beiträge
    109
    Name
    FRag mal
    Nick
    Cooperi
    Clans
    TFE Global
    Ohne zu wissen, was die Druckerbefehle bewirken/verursachen, hier mal den Inhalt der Schleife (For/Next) betrachtet:

    Die Variable "Err" wird auf Null gesetzt.

    Dann wird die Variable "Err" wieder abgefragt, ob sie Null ist > muss sie ja sein, ist ja gerade gesetzt

    Die Variable "DDrucker" wird belegt und die For/Next-Schleife wird verlassen (Exit For).

    D.h., der Schleifenzähler "d" (benötigt in: Format(d, "00") kommt nie über Null hinaus.

    Also wird die Variable DDrucker immer

    \xxx\xx auf Ne00:

    lauten. Ist das so gewollt ?

    An dieser Stelle ist ein bestimmt Überdenken des Makos notwendig.

    Gruß aus Berlin
    Vote for TFFA im UF Clanforum!
    [SIGPIC][/SIGPIC]

  7. #7
    Gefreiter

    Registriert seit
    19.11.2011
    Beiträge
    145
    Err ist keine Variable im herkömmlichen Sinne, sondern das Error-Objekt von VB.
    Üblicherweise setzt man es nicht auf 0, sondern verwendet Err.Clear(). Wenn ActivePrinter nicht auf den neuen Wert gesetzt werden kann (etwa weil der Drucker nicht existiert), dann wird das Err-Objekt verändert. Die Überprüfung sollte eigentlich auch eher "If Err.Number = 0" sein, aber funktionieren sollte es trotzdem, da VB das Objekt besonders behandelt.

  8. #8
    Veni vidi vici
    Avatar von VEILoPHyPER^
    Registriert seit
    16.06.2011
    Ort
    Bodensee
    Alter
    21
    Beiträge
    8.649
    Name
    Philipp
    Nick
    VEILoPHyPER^
    Hallo, also erstmal Großes Danke.
    Das mit dem Drucker ansteuern Klappt so in der Art wie ich mir es vorgestellt habe.
    Aber egal, habe n neuen Plan.
    Code:
    Private Sub CommandButton1_Click()
    '
    ' Dublizieren Makro
    '
      Application.ActiveDocument.SaveAs ("C:\Test\NewDocument.docx")
    
        Dim Drucker$
            Drucker = Application.ActivePrinter
    
            Application.ActivePrinter = "\\xxx\xxx auf Ne"
        
                For Zahl = 1 To 2
                    Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=5
                    Selection.Bookmarks("\Page").Range.Copy
                
                    Selection.EndKey Unit:=wdStory
                    Selection.InsertBreak (wdPageBreak)
                    Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=Pages + 5
                    Selection.PasteAndFormat (wdFormatOriginalFormatting)
            
                Next Zahl
            Application.ActiveDocument.PrintOut Copies:=1, ActivePrinter:=Drucker
    End Sub
    Ziel ist, dass das fertige Dokument gesichert wird, dann verdreifacht und 3 mal ausgedruckt wird.
    Speicher und verdreifachen klappt nicht. Beim "Drucken" befehl kommt dann diese Meldung und "ActivePrinter" wird makiert
    Die Fachsteuerung kann ich ja im Dokument auch so hinterlegen.
    Dann hätte ich noch gerne dass der Name des Dokuments automatisch aus meheren Textfeldern generiert wird.

    Viele Fragen, hoffe ihr könnt mir helfen.

    Mfg
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicke auf die Grafik für eine größere Ansicht 

Name:	VB Fehler.PNG 
Hits:	13 
Größe:	50,7 KB 
ID:	87162  

  9. #9
    Gefreiter

    Registriert seit
    19.11.2011
    Beiträge
    145
    Erstmal zum Fehler auf dem Screenshot. ActivePrinter:=Drucker funktioniert so nicht, denn mit Name:=Wert werden die Parameter, die die Funktion erwartet in beliebiger Reihenfolge übergeben, ActivePrinter ist aber kein Parameter. Ich sehe auch keinen, der diese Funktion erfüllt, also musst du hier ActivePrinter wie zuvor separat zuweisen. Aber was willst du erreichen? Drucker$ setzt du doch auf den Drucker, der sowieso der gerade ausgewählte ist.

    Eine Frage zum Kopieren und Einfügen: Warum nicht einfach Copies:=3?

  10. #10
    Veni vidi vici
    Avatar von VEILoPHyPER^
    Registriert seit
    16.06.2011
    Ort
    Bodensee
    Alter
    21
    Beiträge
    8.649
    Name
    Philipp
    Nick
    VEILoPHyPER^
    Zitat Zitat von AlexB Beitrag anzeigen
    Erstmal zum Fehler auf dem Screenshot. ActivePrinter:=Drucker funktioniert so nicht, denn mit Name:=Wert werden die Parameter, die die Funktion erwartet in beliebiger Reihenfolge übergeben, ActivePrinter ist aber kein Parameter. Ich sehe auch keinen, der diese Funktion erfüllt, also musst du hier ActivePrinter wie zuvor separat zuweisen. Aber was willst du erreichen? Drucker$ setzt du doch auf den Drucker, der sowieso der gerade ausgewählte ist.

    Eine Frage zum Kopieren und Einfügen: Warum nicht einfach Copies:=3?
    Sprich ich könnte den Druckbefehl so stehen lassen
    Oder wie meinst du das ?

    Das mit den Copies:=3 geht nicht, weil ich dann nicht deklarieren kann, dass die erste Seit ausm Bypass soll und der Rest aus Fach 1.
    Da würde er 3mal das Dokument drucken. Sprich 3mal die erste Seite, was ich ja nicht will...

  11. #11
    Gefreiter

    Registriert seit
    19.11.2011
    Beiträge
    145
    Ist das jetzt Word oder Excel? Oben steht was von SelectedSheets (Excel), unten ist es Word (".docx").

    Du machst mit dem Drucker dies:
    Code:
    Drucker = ActivePrinter
    ActivePrinter = "xxx";
    ...
    ActivePrinter = Drucker
    Der aktive Drucker ist am Schluss der, der am Anfang eh schon der aktive war - deswegen die Frage.

    Damit die Fehlermeldung nicht mehr auftritt, muss ActivePrinter:=Drucker bei PrintOut entfernt werden. Es ist ein ungültiger Parameter.

    Nur noch mal zum Verständnis: Du willst ein Dokument mit X Seiten dreimal ausdrucken. Seite 1 von Kopie 1 kommt in Fach A und alle anderen Seiten sowie die Kopien 2 und 3 sollen in Fach B?
    Code:
    ActivePrinter = "Dein Lieblingsdrucker hier!"
    ActiveDocument.PageSetup.FirstPageTray = FachAKonstante
    ActiveDocument.PageSetup.OtherPagesTray = FachBKonstante
    Application.ActiveDocument.PrintOut Copies:=1
    ActiveDocument.PageSetup.FirstPageTray = FachBKonstante
    Application.ActiveDocument.PrintOut Copies:=2, Collate:=True
    Wenn die Seiten in der Reihenfolge 1,1,2,2,... herauskommen, ist Collate nötig, ansonsten geht's ohne.

  12. #12
    Veni vidi vici
    Avatar von VEILoPHyPER^
    Registriert seit
    16.06.2011
    Ort
    Bodensee
    Alter
    21
    Beiträge
    8.649
    Name
    Philipp
    Nick
    VEILoPHyPER^
    Also kam die Tage jetzt nimmer dazu, bin jetzt aber fertig

    Code:
    Private Sub Drucken_Click()
    
    '
    ' Dublizieren Makro
    '
          'Speichern aus Name+Vorname.
          'Der Stand wie es Archiviert wird !
          
                With Dialogs(wdDialogFileSaveAs)
                .Name = ActiveDocument.FormFields("Text34").Result & "_" & ActiveDocument.FormFields("Text35").Result
                .Show
                End With
              
          'Der Schutz des aktiven Dokuments wird aufgehoben
                   If ActiveDocument.ProtectionType <> wdNoProtection Then
                   ActiveDocument.Unprotect Password:=""
                   End If
                
                 
            Application.ActivePrinter = "\\UEBPS02\UEBPRT113-A4"
    
              'Dublizieren
              
                For Zahl = 1 To 2
                    Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=5
                    Selection.Bookmarks("\Page").Range.Copy
                
                    Selection.EndKey Unit:=wdStory
                    Selection.InsertBreak (wdPageBreak)
                    Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=Pages + 5
                    Selection.PasteAndFormat (wdFormatOriginalFormatting)
                 Next Zahl
            
            Application.ActiveDocument.PrintOut Copies:=1
                
                'Dokument schließen, ohne die 3 Folien.
                           
                ActiveDocument.Close savechanges:=False
                Application.Quit savechanges:=False
            
                      
    
    
    End Sub
    Ist jetzt der fertige Code.
    Falls ihn jemand benutzen will oder noch ne Frage oder verbesserungsvorschläge hat, gerne hier rein schreiben.

    Greez.

+ Antworten

Ähnliche Themen

  1. porno seiten ?
    Von Cozote im Forum OFF-Topic
    Antworten: 38
    Letzter Beitrag: 15.05.2003, 06:08
  2. Auszug aus commchatlog
    Von joshix im Forum GCC
    Antworten: 0
    Letzter Beitrag: 04.09.2001, 15:02
  3. Wie sieht es den mit Clanfusion aus ??
    Von Mistereis im Forum Alarmstufe Rot 2
    Antworten: 11
    Letzter Beitrag: 29.08.2001, 23:18
  4. Warscheinlich ist es mit !NATO! aus !!!!
    Von Michael2 im Forum Alarmstufe Rot 2
    Antworten: 8
    Letzter Beitrag: 20.08.2001, 01:10
  5. .php seiten
    Von DaNieL im Forum Technik Ecke
    Antworten: 12
    Letzter Beitrag: 06.08.2001, 00:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •