XLSX Tabellenblatt direkt drucken funktioniert nicht

Mitglied: OKIDOKI

OKIDOKI (Level 1) - Jetzt verbinden

22.01.2021 um 08:23 Uhr, 637 Aufrufe, 12 Kommentare

Guten Morgen zusammen,

schon seit langer Zeit nutze ich eine kleine Batch, um eine bestimmtes Tabellenblatt (hier: Sheet_test) einer Excel-Datei (hier: %Pfad%%Name%%Typ%) auszudrucken. Das funktionierte bisher immer problemlos. Auch im Forum ist das ein Thema, z.B.
Druckverfahren

Nun hat mich leider die Druckfunktion verlassen:
und ich erhalte folgende Fehlermeldung:
Kann mir jemand bei der Lösung des Knotens helfen?

Gruß okidoki
Mitglied: H41mSh1C0R
22.01.2021 um 14:41 Uhr
Wird denn der Pfad korrekt aufgelöst?
Bitte warten ..
Mitglied: 147323
147323 (Level 1)
22.01.2021, aktualisiert um 17:13 Uhr
Ich sehe hier gleich mehrere Probleme mit dem obigen Code!
Uu aller erst machst du kein "Escaping" der Sonderzeichen in der Batch (dazu gehören beispielsweise die öffnenden und schließenden Klammern für das VBS etc.)
Zum anderen unterdrückst du im VBS-Code keinerlei evt. auftretenden Dialoge. Das sollte man mittels
einstellen, dann unterdrückst du eventuelle auftauchenden Dialoge und verhinderst damit auch solche Fehler wie du sie gerade siehst.
Ich denke dein Fehler liegt an so einem ausnahmsweise aufpoppenden Dialog. Das siehst du ganz schnell indem du mal Excel im Code sichtbar schaltest mit
Zusätzlich natürlich wie @H41mSh1C0R sagt den Pfad doppelt und dreifach prüfen und auch ob dieser für Excel auch als vertrauenswürdig deklariert ist.

Probier also als erstes mal das hier um zu prüfen ob ein Dialog aufpoppt indem du Excel mal sichtbar schaltest
und dann das Ganze anschließend mal mit globaler Unterdrückung von Dialogen

Gruß jokari
Bitte warten ..
Mitglied: OKIDOKI
22.01.2021 um 17:28 Uhr
Je mehr ich probieren, umso mehr Probleme gibt es :-) face-smile
Also erst einmal vielen Dank für eure Ansätze!

Nach dem Tipp von H41mSh1C0R habe ich den Pfad einfach auskommentiert, sprich "1.xlsx" geschrieben.
Dann kam der Fehler: Wir konnten '1.xlsx' nicht finden (obwohl beide im selben Verzeichnis liegen). Wurde das Objekt vielleicht verschoben, umbenannt oder gelöscht?

Und genauso ergeht es mir bei den Vorschlägen jokari, die Datei ist nicht auffindbar ...
Bitte warten ..
Mitglied: 147323
147323 (Level 1)
22.01.2021, aktualisiert um 17:52 Uhr
sprich "1.xlsx" geschrieben.
Damit stellst du dir selbst ein Bein und ist eine potenzielle Fehlerquelle. Gib bitte den voll qualifizierten Pfad an!
Bitte warten ..
Mitglied: OKIDOKI
22.01.2021, aktualisiert um 18:50 Uhr
... das hatte ich bisher auch so, nur zur Darstellung (und Überprüfung eurer Vorschläge) hatte ich das versucht :-) face-smile

Mit Dateiauswahl sieht es bisher so aus:

Bitte warten ..
Mitglied: 147323
147323 (Level 1)
22.01.2021, aktualisiert um 23:05 Uhr
Lies meine Kommentare und den Code nochmal ganz genau, Stichwort Escaping!!
Bitte warten ..
Mitglied: OKIDOKI
23.01.2021, aktualisiert um 13:13 Uhr
Oben hatte ich falsch "gepastet" ...

Die richtige Excel-Datei wird gefunden (nicht zuletzt auch durch den den vorherigen Dialog).
Dann wird sie geöffnet und es erscheint noch ein Dialog der nachfragt, ob die Datei aktualisiert werden soll - ok.

Wenn dann die vbs anläuft kommt die Meldung: "Index außerhalb des gültigen Bereichs."

Auch nach Unterdrückung der Meldung in deinem unteren Beispiel - nach Unterdrückung von Dialogen - bleibt die Index-Meldung erhalten:

Bitte warten ..
Mitglied: OKIDOKI
23.01.2021, aktualisiert um 13:15 Uhr
Hallo jokari,

ich denke ich bin dem Problem auf der Spur!
Ein Fehler war die nicht übereinstimmende Bezeichnung der Tabellenblätter!

Das habe ich nun überprüft und entsprechend geändert! (Zeile 34)
- Der Ausdruck funktioniert, wenn der Reiter eingeblendet und beschriftet ist mit einer bestimmten Zeichenlänge und vermutlich ohne Leerzeichen.

Wie lässt sich der Ausdruck realisieren, wenn das Tabellenblatt ausgeblendet ist?
Das Tabellenblatt muss vorher eingeblendet werden: Einfügen:
habe ich oben ebenfalls eingefügt

Nun hakt es eigentlich nur noch ein einer Stelle:
Kann das Tabellenblatt eine beliebige Zeichenfolge enthalten / oder wie ist das begrenzt?

Hast du dazu eine Idee?
Bitte warten ..
Mitglied: TK1987
27.01.2021, aktualisiert um 16:24 Uhr
Moin,

lass am besten dass Batch+Vbs gemurkse und nimm stattdessen Powershell
Gruß Thomas
Bitte warten ..
Mitglied: OKIDOKI
27.01.2021 um 16:27 Uhr
Lieber Thomas,
ich freue mich, dass es weitergeht :-) face-smile.

Mein Problem ist, dass ich den Ausdruck aus einer laufenden Batch realisieren muss, da diese noch andere Prozesse steuert. Es wäre also notwendig, den Powershell-Schnipsel daraus zu starten, ist das möglich?
Es ist mir vollkommen klar, dass Batch quasi tot ist, allerdings müsste dann die gesamte Batch auf Powershell umgeschrieben werden, was mir leider (dank meiner fehlenden Kenntnisse) nicht möglich ist.

Dennoch würde ich gerne deinen Vorschlag realisieren ... bloß wie?

Unabhängig von meinen Ausführungen habe ich deinen Vorschlag direkt mit Powershell versucht durchlaufen zu lassen.
Bei mir kommt folgende Fehlermeldung:
"Die PrintOut-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet werden."

Heißt ja, dass er die Datei zumindest gefunden hat, aber eben trotzdem nicht ausdrucken kann.
Beim Tabellenblatt handelt es sich um die Beschriftung "Pädagogische Mitarbeiter". Bei Umbenennung in "Druck" funktioniert es es aber auch nicht. Merkwürdigerweise geht das "Batch+Vbs gemurkse" zumindest, wenn das Tabellenblatt in "Druck" umbenannt ist und sogar ausgeblendet wurde.

Oh Mann, und nun?
Liebe Grüße
okidoki
Bitte warten ..
Mitglied: TK1987
27.01.2021, aktualisiert um 19:05 Uhr
Zitat von @OKIDOKI:
Mein Problem ist, dass ich den Ausdruck aus einer laufenden Batch realisieren muss, da diese noch andere Prozesse steuert. Es wäre also notwendig, den Powershell-Schnipsel daraus zu starten, ist das möglich?
Möglich, klar - Sinvoll, mal dahingestellt. Powershell-Script mit Batch starten geht so:
Es ist mir vollkommen klar, dass Batch quasi tot ist, allerdings müsste dann die gesamte Batch auf Powershell umgeschrieben werden, was mir leider (dank meiner fehlenden Kenntnisse) nicht möglich ist.
dabei können wir ja behilflich sein, wenn du mal dein ganzes Script postest oder kurz beschreibst, was dein Script tut.

Aber erst mal eins nach dem anderen
Bei mir kommt folgende Fehlermeldung:
"Die PrintOut-Eigenschaft des Worksheet-Objektes kann nicht zugeordnet werden."
Ok, das heisst schon mal, alles außer dem Druckbefehl hat soweit funktioniert. Hast du vielleicht keinen Standarddrucker festgelegt?

Versuchen wir es mal anders:
Zum einen habe ich noch eine Ausnahmebehandlung hinzugefügt, falls das zu druckende Blatt keinen Druckbereich hat, zum anderen habe ich den Drucker erstmal manuell auf "Microsoft Print to PDF" festgelegt.

Tut sich nun etwas?
Bitte warten ..
Mitglied: OKIDOKI
27.01.2021, aktualisiert um 21:24 Uhr
Du bist echt klasse :-) face-smile

ok, wenn kein Druckbereich festgelegt ist kommt folgende Fehlermeldung:
Kein Druckbarer Bereich auf Blatt 'Pädagogische Mitarbeiter'.

Dann habe ich einen Druckbereich festgelegt und er geht in den Explorer, um ein pdf abzuspeichern - insofern scheint es in dieser Richtung zu klappen, einen Standarddrucker habe ich aber festgelegt.

Dein Vorschlag, den gesamten in Powershell aufzupeppen finde ich natürlich klasse, da mir das ganze Projekt sehr am Herzen liegt!
Insofern folge ich deinem Rat und stelle hier meinen Code (ist mir etwas peinlich, weil Freaks sicher sofort .... Schwachstellen finden)

Ich freue mich natürlich über Hilfe, wobei es vermutlich vielen anderen helfen kann, da ich viele Ansätze gerade aus diesem Forum habe :-) face-smile

Besondere Probleme machen mir die Fenster, Meldungen und Wartebalken, da greife ich komplett auf Batch zurück, was natürlich semi ist - ist mir aber bewusst und funktioniert :-) face-smile

Ein Hinweis: Ein Downloader gibt die Passörter und Pfade frei, damit diese nicht im "Hauptprogramm" gespeichert werden!
Nun bin ich gespannt ...

Zunächst der "Downloader:
Dann das Hauptprogramm.
Vielleicht kurz zur Erklärung:
Hauptbestandteil ist ein Excel-File, dass heruntergeladen wird. Darin werden die Berechnungen ausgeführt.
Von einem Blatt werden die entstandenen Daten ausgelesen, in HTML (noch in Excel) umgewandelt und hochladen.
Durch das Auslesen sollen auch bestimmte Excel Sheets, wie Pädagogische Mitarbeiter, automatisch ausgedruckt werden.

Bitte warten ..
Heiß diskutierte Inhalte
Linux
Installation Grammm Server
smeclntVor 1 TagFrageLinux13 Kommentare

Hallo zusammen, meine Linux Kenntnisse sind sehr rudimentär trotzdem suche ich eigentlich ständig nach einer Alternative zu MS Exchange. Bis jetzt gab es nichts ...

Switche und Hubs
Probleme im Netzwerk Switche teilweise nicht erreichbar
hukimanVor 9 StundenFrageSwitche und Hubs29 Kommentare

Guten Morgen, seit Monaten haben wir hier immer wieder Probleme mit dem Netzwerk, das Problem konnte ich leider aber noch immer nicht finden. Es ...

Erkennung und -Abwehr
Einer Malware auf der Spur. Benötige Sherlock Holmes!
streamVor 21 StundenFrageErkennung und -Abwehr6 Kommentare

Guten Abend Wenn ich meine Windows-10-Kiste starte, so gibt mir mein Router eine Meldung aus, dass eine bestimmte IP-Adresse wegen Bösartigkeit geblockt wurde. Auf ...

Windows 10
Windows 10 interes Mikro ohne Funktion
TPH125Vor 1 TagFrageWindows 1011 Kommentare

Hallo zusammen, Ich verzweifelt bald. Besitze einen Medion Akoya MD 97110. Habe Windows 10 installiert, seit dem funktioniert das inigrierte Mikrofon nicht mehr. Gerät ...

Batch & Shell
Tabellarische Ausgabe der Netzwerkschnittstellen
gelöst dysti99Vor 8 StundenFrageBatch & Shell18 Kommentare

Mit - ip a - werden ja die Netzwerkschnittstellen angezeigt. Ich möchte mit ein Batchscript folgende Ausgabe erreichen: 1 eth0 192.168.1.1 AD:13:67:56:14:D1 2 eth1 ...

Festplatten, SSD, Raid
(USB) Festplatten laut ?
TomEngelVor 1 TagFrageFestplatten, SSD, Raid6 Kommentare

Ich grüsse Sie Alle. Eine Frage eines engagierten Laien Habe mehrere 3,5 " Festplatte. Einige schon recht alt 8 Jahre, andere ca 2-3 jahre ...

Ubuntu
Mailserver Test Provider IP
gelöst it-blzVor 1 TagFrageUbuntu9 Kommentare

Hallo, ist es möglich einen "Mailserver" (Imap + smtp) in einer Virtual Box mit einer Provider IP (dynamisch - ist allerdings konstant) zu testen? ...

Linux Netzwerk
SAMBA FS Portfreigabe
Jannik2018Vor 23 StundenFrageLinux Netzwerk17 Kommentare

Hallo zusammen, ich habe eine Portfreigabe für meinen SAMBA Server mit Netzwerkfreigaben auf port 445 TCP eingerichtet allerdings wenn ich per DNS oder externer ...