Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBS - Exceldatei öffnen, drucken und schließen

Frage Entwicklung VB for Applications

Mitglied: Kyrinja

Kyrinja (Level 1) - Jetzt verbinden

11.10.2014, aktualisiert 14:40 Uhr, 2657 Aufrufe, 8 Kommentare

Hallöle,
ich habe da ein Problem...unzwar will ich mehrere Exceldateien nacheinander öffnen jeweils mit dem aktuellen Monatsnamen als Arbeitsblatt.

Hierzu habe ich folgenden Code zusammen gebastelt jedoch wenn die Textdatei, in der die Pfade stehen, zu Ende ist, läuft es in den Fehler das die Datei "" nicht gefunden wurde. Außerdem werden die Exceldateien zusammen und nicht nacheunander geöffnet..

01.
 
02.
Set WshShell = WScript.CreateObject("WScript.Shell") 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
Set oFile = fso.OpenTextFile("C:\test\Druck.txt") 
06.
i=0 
07.
while not oFile.AtEndOfStream 
08.
i=i+1 
09.
oFile.ReadLine 
10.
Wend 
11.
oFile.Close 
12.
' Array definieren 
13.
REDIM sEingabe(i) 
14.
Set oFile = fso.OpenTextFile("C:\test\Druck.txt") 
15.
i=0 
16.
while not oFile.AtEndOfStream 
17.
sEingabe(i)=oFile.ReadLine 
18.
i=i+1 
19.
Wend 
20.
oFile.Close 
21.
 
22.
 
23.
dim excel 
24.
set excel = CreateObject("Excel.Application") 
25.
excel.visible = true 
26.
 
27.
Dim iMyMonth, sMyMonth 
28.
iMyMonth = Month(Now) 
29.
sMyMonth = MonthName(iMyMonth) 
30.
 
31.
excel.workbooks.open sEingabe 
32.
excel.Worksheets(sMyMonth).Select 
33.
 
34.
Wscript.Sleep 1500 
35.
WshShell.AppActivate "Excel" 
36.
 
37.
 
38.
WshShell.SendKeys "^p" 
39.
WshShell.SendKeys "{Enter}" 
40.
Wscript.Sleep 1500 
41.
 
42.
excel.DisplayAlerts = False 
43.
excel.Quit 
44.
 
45.
Set excel = Nothing
kann mir jemand weiterhelfen?

Vielen Dank schon mal

PS: bin nicht so wirklich der Programierheld .... :/
Mitglied: colinardo
LÖSUNG 11.10.2014, aktualisiert um 14:40 Uhr
Hallo Kyrinja,
das könntest du so abkürzen: (Kommentare befinden sich im Code)
01.
Dim excel, fso, sMyMonth, line, filepath 
02.
Const TEXTFILE = "C:\test\Druck.txt" 
03.
'Monatsname 
04.
sMyMonth = MonthName(Month(Now)) 
05.
'Objekte erzeugen 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
set excel = CreateObject("Excel.Application") 
08.
'Excel sichtbar machen 
09.
excel.visible = True 
10.
'Dialoge unterdrücken 
11.
excel.DisplayAlerts = False 
12.
'Für jede Zeile in der Textdatei ... (Trennung erfolgt durch Zeilenumbruch am Ende jeder Zeile) 
13.
For Each line In Split(fso.OpenTextFile(TEXTFILE).ReadAll,vbNewLine) 
14.
  filepath = Trim(line) ' führende oder abschließende Leerzeichen der Zeile entfernen 
15.
  'Wenn Zeile nicht leer ist und die Datei existiert... 
16.
  If filepath <> "" And fso.FileExists(filepath) Then 
17.
        ' Datei öffnen 
18.
	Set wb = excel.workbooks.Open(filepath) 
19.
        'gewünschtes Worksheet drucken 
20.
	wb.Worksheets(sMyMonth).PrintOut 
21.
        'Workbook wieder schließen (ohne es zu speichern) 
22.
	wb.Close False 
23.
  End If 
24.
Next 
25.
'Warnmeldungen wieder aktivieren und Excel schließen 
26.
excel.DisplayAlerts = True 
27.
excel.Quit 
28.
'Objekte releasen 
29.
Set excel = Nothing 
30.
Set fso = Nothing  
31.
Set wshSHell = Nothing
Grüße Uwe
Bitte warten ..
Mitglied: Kyrinja
11.10.2014 um 14:11 Uhr
Super!

Vielen Dank doch leider Druckt es nicht :/ kann das mit Excel 2013 zusammen hängen?

Grüße
Bitte warten ..
Mitglied: colinardo
LÖSUNG 11.10.2014, aktualisiert um 14:40 Uhr
Zitat von Kyrinja:
Vielen Dank doch leider Druckt es nicht :/ kann das mit Excel 2013 zusammen hängen?
eigentlich nicht ...läuft hier auf einem 2013er ....
lass mal folgende Zeile raus, damit du siehst woran es bei dir beim Drucken hängt:
excel.DisplayAlerts = False 
Bitte warten ..
Mitglied: Kyrinja
11.10.2014 um 14:16 Uhr
Keine Fehlermeldung...öffnet und schließt sauber aber es geht kein Druckauftrag raus.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 11.10.2014, aktualisiert um 14:43 Uhr
Zitat von Kyrinja:

Keine Fehlermeldung...öffnet und schließt sauber aber es geht kein Druckauftrag raus.
stehen die Pfade in der Textdatei zufällig mit Anführungszeichen ?
läuft hier sonst einwandfrei ...
man kann der Funktion auch einen Drucker übergeben, eventuell ist der falsche Drucker als Standard bei dir definiert ...
wb.Worksheets(sMyMonth).PrintOut ,,,,"Exakter Name des Druckers"
Noch zur Info: Wenn das Sheet leer sein sollte, wird auch nichts gedruckt !
Bitte warten ..
Mitglied: Kyrinja
11.10.2014 um 14:32 Uhr
Nein da steht z.b.
C:\test.xls
C:\test1.xls
...


Ich habe auch mehrere Drucker versucht als Standart zu verwenden..auch den PDFCreator aber es funktioniert bei keinem ...
Bin anscheinend zu blöd und mache irg. etwas falsch

Wie würde ich denn den Drucker übergeben ?
Bitte warten ..
Mitglied: colinardo
11.10.2014, aktualisiert um 14:36 Uhr
Zitat von Kyrinja:
Wie würde ich denn den Drucker übergeben ?
siehe letzter Post ...
Bitte warten ..
Mitglied: Kyrinja
11.10.2014 um 14:40 Uhr
Ups das hatte ich übersehen! die Info war der Schlüssel zum Erfolg

das Sheet war leer

vielen vielen Dank!
Bitte warten ..
Ähnliche Inhalte
Windows Netzwerk
Explorer schließen und öffnen
gelöst Frage von Questionmark93Windows Netzwerk5 Kommentare

Hallo, Ich möchte MEINE explorer.exe schließen und wieder öffnen. Wie lautet der befehl? Weil wenn ich es schließe via ...

Windows Tools
PDF via Powershell drucken - Reader nach druck schließen
Frage von Fr4nkiWindows Tools21 Kommentare

Hallo Zusammen, ich habe ein Powershell Skript geschrieben, dass mir Archive entpackt und die darin enthaltenen PDF-Dateien druckt. Das ...

VB for Applications
VBA Exceldatei nach Speichern Schließen automatisch versenden per Mail
Frage von Mike89VB for Applications4 Kommentare

Guten Tag, Ich benötige einen Code zum Senden einer Datei nachdem ich diese gespeichert habe. Bisher ist es mir ...

VB for Applications
Mit VBS mehrere Links aus Textdatei öffnen
gelöst Frage von Privex007VB for Applications4 Kommentare

Hallo zusammen, ich würde gerne wissen, wie ich es anstelle das ich per VBS eine separate Textdatei öffnen kann ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless9 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows Server
Ping auf einen bestimmten Server nicht möglich
gelöst Frage von a.thierWindows Server7 Kommentare

Hallo, ich habe folgendes Problem. srv-dc1: Ping srv-nav > geht Ping srv-exchange > geht nicht srv-exchange: Ping srv-dc1 > ...