Thema Datum  Von Nutzer Rating
Antwort
Rot VBA - Uhrzeit und Datum an Dateinamen hängen
25.06.2012 13:15:36 Sascha_77
NotSolved
25.06.2012 17:31:30 Holger
NotSolved
25.06.2012 17:56:25 x
NotSolved
26.06.2012 09:17:29 Sascha_77
NotSolved

Ansicht des Beitrags:
Von:
Sascha_77
Datum:
25.06.2012 13:15:36
Views:
2839
Rating: Antwort:
  Ja
Thema:
VBA - Uhrzeit und Datum an Dateinamen hängen

Hallo zusammen.

Ich habe auf der Arbeit ein kleines Problem. Unsere Lieferanten stellen nach und nach auf elektronischen Rechnungsversand (als PDF) bei uns um. Ich habe jetzt auch schon einen Rechner zusammengezimmert der die eMails (Outlook 2003 / WinXP) empfängt, die Anhänge per VB-Script auf Festplatte speichert (C:\Temp) und alle 10 Minuten läuft eine Batch-Datei die die Rechnungen mit einem aktuellen Eingangsstempel versieht und es dann an den Drucker schickt.

Da dieses Script alle 10 Minuten läuft werden natürlich erstmal alle Anhänge von Mails die in diesem zeitfenster eintrudeln auf Platte zwischengespeichert. Dummerweise haben wir Lieferanten die das Attachment immer gleich nennen. Aktuell hier: Rechnung.pdf

Da haben wir 8 Mails auf einmal bekommen. Jetzt hat er natürlich 8 mal unter dem gleichen Namen das Attachment gespeichert. Somit 7 mal die Datei überschrieben, sodass die 10-Minuten-Batch nur eine Datei zum ausdrucken hat. Die anderen 7 sind futsch.

Jetzt meine Frage. Unter Unix ist es ja ein einfaches z.b. die uhrzeit (inklusive Sekunden) und Datum in einen Dateinamen autom. zu schreiben (z.B. 250612_092155_Rechnung.pdf). Aber wie sieht das unter VB aus? Das hier ist der Code. Was muss ich einfügen um ihn dazu zu bewegen die uhrzeit mit sekundenangaben mit in den Dateinamen zu packen? Dann wäre jeder Dateiname einzigartig und die Gefahr das die Datei immer überschrieben wird ist gebannt. Am besten noch eine Pause von 5 Sekunden im Script damit auf keinen Fall 2 Dateien in der selben Sekunde geschrieben werden können.

Public Sub Save_It(oMail As Outlook.MailItem)
Dim strNewFolder As String
Dim objPosteingang As MAPIFolder
Dim objNewMail As MailItem

' Prüfe, ob der Ordner bereits existiert
strNewFolder = "C:\Temp\"

' Target --> Posteingang
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder( olFolderInbox)

' Wenn neue Mails ankommen, dann enthaltene Anlagen in strNewFolder speichern
For Each objNewMail In objPosteingang.Items
With objNewMail
If .UnRead = True Then
intAnlagen = .Attachments.Count
If intAnlagen > 0 Then
For i = 1 To intAnlagen
.Attachments.Item(i).SaveAsFile strNewFolder & "\" & .Attachments.Item(i).FileName
Next i
End If
End If
End With
Next objNewMail

End Sub


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA - Uhrzeit und Datum an Dateinamen hängen
25.06.2012 13:15:36 Sascha_77
NotSolved
25.06.2012 17:31:30 Holger
NotSolved
25.06.2012 17:56:25 x
NotSolved
26.06.2012 09:17:29 Sascha_77
NotSolved