Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Übersicht der gedruckten Dateien
zurück: in Text-Formularfeld schreiben weiter: Einzelne Kapitel von großem Dokument ausgeben Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
*Knut*
Einsteiger


Verfasst am:
21. Jul 2008, 10:59
Rufname:

Übersicht der gedruckten Dateien - Übersicht der gedruckten Dateien

Nach oben
       Version: Office XP (2002)

Hallo liebe Forumsgemeinde!

Mittels folgendem Code drucke ich aus einem bestimmten Verzeichnis alle Dokumente aus.

Code:
Sub Belege_drucken()

Application.ScreenUpdating = False
Application.Visible = False

    Dim Verz As String
    Dim DName As String
    Dim Pfad As String
 
   
Pfad = "Q:\Abteilung_II\Testfall\"
   
Select Case True
    Case UserForm1.OptionButton1.Value
         Verz = Pfad & "Da"                        'Darmstadt
    Case UserForm1.OptionButton2.Value
         Verz = Pfad & "Ffm"                       'Frankfurt
    Case UserForm1.OptionButton3.Value
         Verz = Pfad & "Fu"                        'Fulda
    Case UserForm1.OptionButton4.Value
         Verz = Pfad & "Gi"                        'Gießen
    Case UserForm1.OptionButton5.Value
         Verz = Pfad & "Ha"                        'Hanau
    Case UserForm1.OptionButton6.Value
         Verz = Pfad & "Ks"                        'Kassel
    Case UserForm1.OptionButton7.Value
         Verz = Pfad & "Li"                        'Limburg
    Case UserForm1.OptionButton8.Value
         Verz = Pfad & "Ma"                        'Marburg
    Case UserForm1.OptionButton9.Value
         Verz = Pfad & "Wi"                        ' Wiesbaden
   
End Select

    'ChDir Verz
   
    DName = Dir(Verz & "\*.doc")
   
    If DName <> "" Then
           
        Dateiendrucken1 Verz, DName
    End If
   
    Do While (DName <> "")
        DName = Dir()
        If DName <> "" Then
            Dateiendrucken1 Verz, DName
        End If
    Loop
Application.Visible = True
Application.ScreenUpdating = True

End Sub


Code:

Sub Dateiendrucken1(Verz As String, DName As String)

Documents.Open (Verz & "\" & DName)

Application.Visible = False
Application.ScreenUpdating = False

With Documents(DName)
   .PrintOut
   .Close SaveChanges:=wdDoNotSaveChanges
End With

'Application.Visible = True
'Application.ScreenUpdating = True

End Sub


Da das Verzeichnis allerdings von mehreren Personen fast täglich mit neuen Dokumenten gefüttert wird und die alten nicht gelöscht werden dürfen wäre eine Übersicht, welche Belege schon gedruckt wurden, sehr hilfreich.
Folgende Lösungsansätze, noch theoretischer Natur, hatte ich mir überlegt:

1. Der Dateiname könnte "gedruckt am ......." erweitert werden

oder

2. Der jeweilige Dateiname könnte in ein anderes Dokument oder Excel-Sheet eingetragen werden

Vielleicht fallen Euch auch noch andere Sachen ein um eine Kontrolle zu erleichtern. Ansonsten wären Code-Vorschläge zur Umsetzung der obigen Lösung super.

Viele Grüße
*Knut*
Bitmixer
Office: fortgeschritten, VBA: wenig Erfahrung


Verfasst am:
23. Jul 2008, 01:34
Rufname:
Wohnort: Berlin


AW: Übersicht der gedruckten Dateien - AW: Übersicht der gedruckten Dateien

Nach oben
       Version: Office XP (2002)

Hallo Knut,

kann jetzt hier gerade nicht testen, frag doch mal die Dokumenteigenschaft ActiveDocument.BuiltInDocumentProperties(wdPropertyTimeLastPrinted) ab, die müßte bei einem ungedruckten Dokument leer oder null sein, bei einem bereits gedruckten kleiner als das aktuelle Datum.
*Knut*
Einsteiger


Verfasst am:
23. Jul 2008, 08:59
Rufname:

AW: Übersicht der gedruckten Dateien - AW: Übersicht der gedruckten Dateien

Nach oben
       Version: Office XP (2002)

Hallo,

vielen Dank für den Tipp!

Müsste man jetzt noch irgendwie in die Sub Dateiendrucken1 als IF-Anweisung einbauen, richtig!? Kann mir dabei ein wenig geholfen werden, bitte!?

Gruß
dappes
Im Profil kannst Du frei den Rang ändern


Verfasst am:
23. Jul 2008, 11:03
Rufname:
Wohnort: Unterfranken

AW: Übersicht der gedruckten Dateien - AW: Übersicht der gedruckten Dateien

Nach oben
       Version: Office XP (2002)

Hallo Knut,

Code:
Public strPfadname As String
Public strdatumdruckDate As String

Private Sub Document_Close()

    Dim lngdatumdruckDate As Long
    Dim lngDate As Long

    'sprung zur nächsten Anweisung wenn _
    Dokumenteigenschaft nicht gesetzt
    On Error Resume Next
   
    'umwandlung der Dokumenteigenschaft 'gedruckt am' in string für Dateiliste
    strdatumdruckDate = Format(ActiveDocument.BuiltInDocumentProperties(10).Value, "dd.mm.yyyy")
   
    'Umwandlung Datum aus Datum und Uhrzeit von 'gedruckt am' in Ganzzahl
    lngdatumdruckDate = CLng(ActiveDocument.BuiltInDocumentProperties(10).Value)
   
    'umwandlung Systemdatum in Ganzzahl
    lngDate = CLng(Date)
   
    'wenn Datum des letzten Ausdrucks älter als Systemdatum sub verlassen _
    (vermeidet Wiederholungseinträge in Textdatei), wenn noch nicht gedruckt, sub verlassen
    If lngdatumdruckDate < lngDate Then
        Exit Sub
    End If
   
    strPfadname = "E:\" & ActiveDocument.Name
    inDateilisteschreiben

End Sub

Code:
Sub inDateilisteschreiben()
    Set fs = CreateObject("Scripting.FileSystemObject")
    If (fs.FileExists("E:\Dateiliste.txt")) = False Then
        fs.CreateTextFile ("E:\Dateiliste.txt")
        Set a = fs.OpenTextFile("E:\Dateiliste.txt", ForAppending)
        a.Writeline "Datei:" & vbTab & vbTab & vbTab & vbTab & "Datum:"
    Else
        Set a = fs.OpenTextFile("E:\Dateiliste.txt", ForAppending)
    End If
   
    a.Writeline strPfadname & vbTab & strdatumdruckDate
    a.Close
End Sub


Wenn du diesen Code in die Document_Close von ThisDocument einträgst (in einer separaten Dokumentvorlage), dann wird beim Schließen des Dokuments
geprüft, ob es bereits gedruckt wurde. Ist dies der Fall, so wird der Pfad des Dokuments und das Druckdatum in ein Textfile eingetragen.

Benutzt wird dabei die von Bitmixer bereits erwähnte Dokumenteigenschaft.

Gruß
dappes
*Knut* als Gast
Gast


Verfasst am:
23. Jul 2008, 12:38
Rufname:

AW: Übersicht der gedruckten Dateien - AW: Übersicht der gedruckten Dateien

Nach oben
       Version: Office XP (2002)

Hallo,

vielen Dank nochmals!
Hab´s mir allerdings jetzt selbst an meinen bestehenden Code angepasst:

Code:
Sub Dateiendrucken1(Verz As String, DName As String)

Documents.Open (Verz & "\" & DName)

Application.Visible = False
Application.ScreenUpdating = False

On Error Resume Next

Anzahl = ActiveDocument.BuiltInDocumentProperties(10).Value
If  Anzahl <> "" Then
    ActiveDocument.Close SaveChanges:=wdSaveChanges
Else
      With Documents(DName)
         .PrintOut
         .Close SaveChanges:=wdSaveChanges
      End With
End If

Application.Visible = True
Application.ScreenUpdating = True

End Sub


Gruß
*Knut*
Einsteiger


Verfasst am:
29. Jul 2008, 12:46
Rufname:

AW: Übersicht der gedruckten Dateien - AW: Übersicht der gedruckten Dateien

Nach oben
       Version: Office XP (2002)

Hallo nochmal,


nachdem ich mittlerweile ein wenig getestet habe bin ich auf folgendes Problem gestoßen:

Wie schon gesagt, versuche ich mit folgendem Code alle (bisher noch nicht gedruckten) Belege aus einem Ordner zu drucken:

Code:
Sub Belege_drucken()

Application.ScreenUpdating = False
Application.Visible = False

    Dim Verz As String
    Dim DName As String
    Dim Pfad As String
 
   
Pfad = "Q:\Abteilung_II\Testfall\"
   
Select Case True
    Case UserForm11.OptionButton1.Value
         Verz = Pfad & "Da"                      'Darmstadt
    Case UserForm11.OptionButton2.Value
         Verz = Pfad & "Ffm"                      'Frankfurt
    Case UserForm11.OptionButton3.Value
         Verz = Pfad & "Fu"                        'Fulda
    Case UserForm11.OptionButton4.Value
         Verz = Pfad & "Gi"                        'Gießen
    Case UserForm11.OptionButton5.Value
         Verz = Pfad & "Ha"                       'Hanau
    Case UserForm11.OptionButton6.Value
         Verz = Pfad & "Ks"                       'Kassel   
Case UserForm11.OptionButton7.Value
         Verz = Pfad & "Li"                       'Limburg
    Case UserForm11.OptionButton8.Value
         Verz = Pfad & "Ma"                       'Marburg
    Case UserForm11.OptionButton9.Value
         Verz = Pfad & "Wi"                       ' Wiesbaden
   
End Select

    'ChDir Verz
   
    DName = Dir(Verz & "\*.doc")
   
    If DName <> "" Then
               
        Dateiendrucken1 Verz, DName
       
    End If
   
    Do While (DName <> "")
        DName = Dir()
        If DName <> "" Then
            Dateiendrucken1 Verz, DName
        End If
    Loop
Application.Visible = True
Application.ScreenUpdating = True

End Sub

Code:

Sub Dateiendrucken1(Verz As String, DName As String)

Documents.Open (Verz & "\" & DName)

Application.Visible = False
Application.ScreenUpdating = False

On Error Resume Next

Anzahl = ActiveDocument.BuiltInDocumentProperties(10).Value 'bereits gedruckt
If Anzahl <> "" Then
ActiveDocument.Close SaveChanges:=wdSaveChanges
Else
With Documents(DName)
         .PrintOut
         .Close SaveChanges:=wdSaveChanges
      End With
End If
Application.Visible = True
Application.ScreenUpdating = True

End Sub


Problem ist nun aber Folgendes:
Die Belege in den einzelnen Ordner werden ebenfalls durch ein Makro aus einem Serienbrief erstellt. Dabei wird bei jedem Datensatz mittels "Senden an Neues Dokument" und speichern dieses Doc´s eine extra Datei erstellt..

Code:
Public Sub Debitorengutschrift()

Dim actpath As String, Dateiname As String
Dim myField As Word.Field

Const path As String = "Q:\Abteilung_II\Testfall\"

On Error GoTo 0

Application.ScreenUpdating = False
Application.Visible = False

Dim LetzterRec As Long
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
LetzterRec = Word.ActiveDocument.MailMerge.DataSource.ActiveRecord

ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord

With ActiveDocument.MailMerge
    .DataSource.ActiveRecord = wdFirstRecord
    Do
        If .DataSource.ActiveRecord > 0 Then
            .Destination = wdSendToNewDocument
            .SuppressBlankLines = True
                       
           With .DataSource
               
                actpath = path & .DataFields("LG") & "\"         'Der aktuelle Pfad wird zusammengesetzt
                Dim fs As Object
                Set fs = CreateObject("Scripting.FileSystemObject")
                If fs.folderexists(actpath) = False Then MkDir (actpath) 'Wenn der Ordner noch nicht existiert wird er jetzt erstellt
               
               
                .FirstRecord = .ActiveRecord
                .LastRecord = .ActiveRecord
               
            Dateiname = actpath & _
                .DataFields("Name").Value & ", " & _
                .DataFields("Vorname").Value & " - " & "AG " & _
                .DataFields("Behoerde").Value & ".doc"                  Dateiname = Name, Vorname - AG Behoerde
            End With
            .Execute Pause:=False
           
           'Datumsfeld wird "konvertiert"
            If ActiveDocument.Fields.Count > 0 Then
              For Each myField In ActiveDocument.Fields
                If myField.Type = wdFieldTime Then
                myField.Unlink
                End If
              Next myField
            End If
           
             'Wenn Dateiname NICHT vorhanden dann "Speichern unter"     
            If Dir$(Dateiname) = "" Then ActiveDocument.SaveAs FileName:=Dateiname
           
            ActiveDocument.Close False
           
        End If
       
    If .DataSource.ActiveRecord < LetzterRec Then
         .DataSource.ActiveRecord = wdNextRecord
      Else
         Exit Do
      End If
   Loop
 
End With

MsgBox ("Erledigt")
Application.Visible = True
Application.ScreenUpdating = True

End Sub


Dabei wird scheinbar jedesmal die "zuletzt gedruckt-Eigenschaft" des Hauptdokuments übernommen. Meine Idee war jetzt, dass ich an dieser Stelle
Code:
 'Wenn Dateiname NICHT vorhanden dann "Speichern unter"     
            If Dir$(Dateiname) = "" Then ActiveDocument.SaveAs FileName:=Dateiname
           
            ActiveDocument.Close False


die Eigenschaft .BuiltInDocumentProperties(10) auf 0 oder leer schreiben müsste...aber irgendwie hauen meine Versuche nicht hin! Sad

Kann mir jemand, nachdem er sich bereits die Mühe gemacht, den Beitrag bis hier hin zu lesen Smile , einen Tipp geben!?

Vielen Dank!

Gruß
*Knut*
Bitmixer
Office: fortgeschritten, VBA: wenig Erfahrung


Verfasst am:
30. Jul 2008, 15:25
Rufname:
Wohnort: Berlin


AW: Übersicht der gedruckten Dateien - AW: Übersicht der gedruckten Dateien

Nach oben
       Version: Office XP (2002)

Hallo *Knut*,

schaust Du hier: http://www.vba-proggen.de/index.php?action=artikel&cat=4&id=3&artlang=de

Zitat:
'einige der Word Dateieigenschaften können nicht geändert werden.


Last Print Date gehört nach meinen Tests dazu, macht ja auch irgendwie Sinn.
Wenn Du aus einem bestehenden Dokument mit SaveAs ein neues Dokument erstellt dann erbt es das letzte Druckdatum. Wenn man berücksichtigt das es ja per Definition kein neues Dokument sondern nur eine neue Version ist macht das auch wieder Sinn, und das das Erstelldatum dann jünger ist als das Druckdatum ist zwar irritierend, sagt aber nichts als das diese Version noch nicht gedruckt wurde.

Nur ein mit Documents.Add tatsächlich neu erstelltes Dokument hat ein leeres Druckdatum.

Versuch es doch mal mit:
Code:
Dim istgedruckt as boolean
With ActiveDocument
If .BuiltInDocumentProperties(10) > .BuilInDocumentProperties(11) then istgedruckt = true else istgedruckt = false
End With


Nur wenn das Druckdatum größer als das Erstelldatum ist (also zeitlich nach diesem liegt) wurde dieses Dokument bereits gedruckt.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Formate: Problem mit Dateien, die aus einer Vorlage erstellt wurden 2 doelfel 107 15. Jan 2014, 18:37
EPsi1 Problem mit Dateien, die aus einer Vorlage erstellt wurden
Keine neuen Beiträge Word Serienbriefe: Serienbrief in einzelne Dateien speichern 1 moneymeyer 4245 16. Jun 2010, 22:00
charlybrown Serienbrief in einzelne Dateien speichern
Keine neuen Beiträge Word VBA Programmierung (Makros): Dateien per Combobox auswählen 5 Andii 1294 04. Sep 2009, 08:19
Andii Dateien per Combobox auswählen
Keine neuen Beiträge Word VBA Programmierung (Makros): Aktion vor dem Druck ausführen - zwei Dateien zusammenlegen 0 worder1997 1412 02. Sep 2008, 11:42
worder1997 Aktion vor dem Druck ausführen - zwei Dateien zusammenlegen
Keine neuen Beiträge Word VBA Programmierung (Makros): Übersicht (viele) Dokumentvorlagen 4 Matthias_ 499 19. Aug 2008, 19:44
Lisa Übersicht (viele) Dokumentvorlagen
Keine neuen Beiträge Word VBA Programmierung (Makros): Dateien kopieren 6 Gast 395 19. Aug 2008, 09:06
Gast Dateien kopieren
Keine neuen Beiträge Word VBA Programmierung (Makros): Bestehende Grafikdatei in Dokument austauschen 200 Dateien 3 BP-Technik 785 02. Jul 2008, 08:09
TODuke Bestehende Grafikdatei in Dokument austauschen 200 Dateien
Keine neuen Beiträge Word VBA Programmierung (Makros): Makro auf mehrere Dateien anwenden? 2 SeNo 1514 29. Apr 2008, 14:34
seno Makro auf mehrere Dateien anwenden?
Keine neuen Beiträge Word VBA Programmierung (Makros): Serienbrief in einzelne Dateien mit MMtoDocs / Dateinamen 0 tomwahl 2920 26. Apr 2008, 13:50
tomwahl Serienbrief in einzelne Dateien mit MMtoDocs / Dateinamen
Keine neuen Beiträge Word VBA Programmierung (Makros): Serienbrief in einzelne Dateien 0 Specht 582 23. Apr 2008, 16:27
Specht Serienbrief in einzelne Dateien
Keine neuen Beiträge Word VBA Programmierung (Makros): Makro für Speichern mit Datum NUR bei neuen Dateien 1 WordFrager 798 17. Apr 2008, 17:53
Wodchecker Makro für Speichern mit Datum NUR bei neuen Dateien
Keine neuen Beiträge Word VBA Programmierung (Makros): Serienbrief in einzelne Dateien 0 Specht 794 03. Apr 2008, 15:58
Specht Serienbrief in einzelne Dateien
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: CSS Forum