Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Wochentagabhängig drucken | Herbers Excel-Forum


Betrifft: Wochentagabhängig drucken von: Volker
Geschrieben am: 28.01.2010 19:26:21

Hallo liebe Excelgemeinde.
Mir spukt mal wieder eine Sache im Kopf.
Kann man eigendlich eine geschlossene Exceldatei wochentagabhängig (öffnen) zu einer bestimmten Uhrzeit drucken, und das per Code ausführen lassen?

Ich habe eine mehrere Bestelllisten, die an bestimmten Tagen ausgedruckt werden sollen. Und dies ggf. Nachts, so das ich am Morgen die Bestellungen gleich in der Liste ausfüllen kann.

Hilft mir hier einer von EUCH, den meine Code Kenntnisse sind leider immer noch bescheiden
Gruss Volker

  

Betrifft: AW: Wochentagabhängig drucken von: Tino
Geschrieben am: 28.01.2010 20:32:09

Hallo,
vielleicht über eine Script Datei.
Versuch mal und erstelle eine Textdatei mit diesem Inhalt.

Dim myXL_Application
Set myXL_Application = CreateObject("Excel.Application")
myXL_Application.Workbooks.Open "G:\Ordner\Exceldatei.xls" 'Pfad anpassen
myXL_Application.WindowState = 1
myXL_Application.Visible = True
myXL_Application.Sheets("Tabelle1").Printout	'Ausdrucken Tabelle1
myXL_Application.Quit
Set myXL_Application = Nothing
Pfad zur Excel Datei noch anpassen und die Tabelle die gedruckt werden soll.
Speichern schließen und die Endung txt in vbs umbenennen.
Diese Scriptdatei über den Taskplaner zu einer bestimmten Termin aufrufen lassen.
Habe ich nicht getestet, müsste aber funktionieren wenn Skripte nicht geblockt werden.


Gruß Tino


  

Betrifft: AW: Wochentagabhängig drucken von: Volker
Geschrieben am: 28.01.2010 21:34:55

Hallo Tino,
ich glaube ich bin damit überfordert.
Außerdem meinte ich, das der Code jeweils am Montag gestimmte Arbeitsblätter drucken soll, am Dienstag wieder andere usw.
Ich werde trotzdem morgen Deinen Rat mit dem Script anpassen. Ich hoffe ich bekomme es hin, habe ich habe keine admin. Rechte auf den Rechner. Spiel das ggf eine Rolle?
Gruss Volker


  

Betrifft: AW: Wochentagabhängig drucken von: Tino
Geschrieben am: 28.01.2010 22:43:25

Hallo,
für jeden Tag ein anderes Tabellenblatt geht so, habe ich auch getestet.
Im Taskplaner (unter Vista und Win7 heißt der Aufgabenplanung),
musst Du diese Datei jede Nacht einmal ausführen lassen.
Der Taskplaner funktioniert normalerweise auch ohne Admin rechte,
was ich nicht weiß ob Skripte bei Dir geblockt werden oder nicht,
diese Frage kann ich Dir nicht beantworten.

Dim myXL_Application
Set myXL_Application = CreateObject("Excel.Application")

With myXL_Application
 .Workbooks.Open "D:\TestDruck.xls",,True 'Pfad anpassen
 .WindowState = 1
 .Visible = True

Select Case Weekday(Date, 2)
	Case  1: .Sheets("Monatg").Printout
	Case  2: .Sheets("Dienstag").Printout
	Case  3: .Sheets("Mittwoch").Printout
	Case  4: .Sheets("Donnerstag").Printout
	Case  5: .Sheets("Freitag").Printout
	Case  6: .Sheets("Samstag").Printout
	Case  7: .Sheets("Sonntag").Printout
End Select
 
 .Quit

End With
Set myXL_Application = Nothing
Sonst kannst Du mal dies noch versuchen.
Erstelle eine neue Exceldatei mit diesem Code


kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
On Error Resume Next 
Application.OnTime dTime, "PrintDatei", , False 
End Sub 
 
Private Sub Workbook_Open() 
Dim Uhrzeit As Date 
Uhrzeit = TimeSerial(2, 0, 0) 
 
If Time >= TimeSerial(0, 0, 0) And Time < Uhrzeit Then 
    dTime = Date + Uhrzeit 
Else 
    dTime = Date + 1 + Uhrzeit 
End If 
 
Application.OnTime dTime, "PrintDatei" 
End Sub 
kommt als Code in Modul1
Option Explicit 
Public dTime As Date 
Sub PrintDatei() 
Dim meFile As Workbook 
 
On Error Resume Next 
    Set meFile = Workbooks.Open("D:\TestDruck.xls", True, True)  'Pfad anpassen 
    If meFile Is Nothing Then 
     MsgBox "Sorry Datei konnte nicht geöffnet werden" 
     Exit Sub 
    End If 
Err.Clear 
On Error GoTo 0 
 
On Error GoTo ErrorH: 
With meFile 
 
    Select Case Weekday(Date, 2) 
        Case 1: .Sheets("Monatg").PrintOut 
        Case 2: .Sheets("Dienstag").PrintOut 
        Case 3: .Sheets("Mittwoch").PrintOut 
        Case 4: .Sheets("Donnerstag").PrintOut 
        Case 5: .Sheets("Freitag").PrintOut 
        Case 6: .Sheets("Samstag").PrintOut 
        Case 7: .Sheets("Sonntag").PrintOut 
    End Select 
  
    .Close False 
End With 
 
MsgBox "Ausdruck erfolgreich" 
 
Exit Sub 
 
ErrorH: 
 
On Error Resume Next 
    meFile.Close False 
    MsgBox Err.Number & vbCr & vbCr & Err.Description, vbCritical, "Fehler beim Druck" 
End Sub 
Diese öffnest Du wenn Du Feierabend machst, achte darauf dass Makros aktiv sind.
Pfad zur Datei, die Tabellen die gedruckt werden sollen musst Du noch anpassen.

Gruß Tino


  

Betrifft: AW: Wochentagabhängig drucken von: Volker
Geschrieben am: 29.01.2010 20:43:22

Danke Tino, ich kann leider erst am Montag die Codes ausprobieren, aber ich schreibe dir wenn alles geht!

Danke dir erst mal und schönes Wochenende

Gruss Volker


  

Betrifft: AW: Wochentagabhängig drucken von: Volker
Geschrieben am: 31.01.2010 12:38:27

Hallo Tino,

habe es nicht ausgehalten und den Code in Excel ausprobiert.
Zwei bitten habe ich dabei:
1. Kannst du mir den Code so anpassen , das ich in den Tagesnamenzeige ggf. den konkreten Pfad der zu durckenden Arbeitsmappe\Blattname eingeben kann--wenn es zwei oder mehr Arbeitsmappen sind, die unterschiedlichen Pfaden liegen, nacheineander gedruckt werden.
2. Der Code bleibt immer nach dem Druck mit der Meldung:Ausdruck erfolgt stehen. der Code sollte aber direkt enden.

Für deine hilfe die schon super ist dake ich dir herzlich
Gruss Volker


Beiträge aus den Excel-Beispielen zum Thema "Wochentagabhängig drucken"