2.3k Aufrufe
Gefragt in Textverarbeitung von Einsteiger_in (47 Punkte)
Guten Tag,
Ich habe ein Problem mit einen Makro , es soll die Dateien eines Ordners mit Outlook
verschicken
hier das Makro
Bekomme aber immer einen Debugger bei
 For Each File In Files
wenn mir jemand helfen könnte.

Public Sub SendAllFiles()
  Dim objOutlook As Object
Dim objMail As Object

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)

With objMail
  
  'Alle Dateien aus diesem Verzeichnis senden
  m_Send = "C:\Users\"
  
  'Gesendete Dateien hierhin verschieben
  m_Done = "C:\Users2\"
  
  'Empfänger
  m_To = "@t-online.de"
  
  Set Files = GetFiles
  If Files.Count Then
    For Each File In Files
      Set Mail = Application.CreateItem(olMailItem)
      Mail.Attachments.Add File.Path
      File.Move m_Done & File.Name
      Mail.To = m_To
      Mail.Subject = "Datei: " & File.Name
      Mail.Display
    Next
  End If
  End With
End Sub

Private Function GetFiles() As VBA.Collection
  Dim objOutlook As Object
  Dim objMail As Object
  

  Dim List As VBA.Collection
  
  Set List = New VBA.Collection
  
  
End Function

16 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Riedl,

prüfe, ob m_send
[list] - in deinem Makro ein Wert (= Verzeichnis, aus dem die Daten versendet werden sollen) zugewiesen wird
- entsprechend meinem oben geposteten Link [b]außerhalb[/b] der Sub und Function deklariert wird.[/list]

Gruß

M.O.
0 Punkte
Beantwortet von Einsteiger_in (47 Punkte)
Hallo, was meinen Sie mit zugewiesen. MfG Riedl
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

in deinem Makro müsste eine Zeile stehen, in der du der Variable m_send ein Verzeichnis zuweist, in dem die Dateien liegen, die versendet werden sollen. Diese Zeile sollte so aussehen:
[code] 'Alle Dateien aus diesem Verzeichnis senden
  m_Send = "C:/Beispiel/"[/code]
Natürlich müsste statt C:/Beispiel/ dein Verzeichnis stehen.

Gruß

M.O.
0 Punkte
Beantwortet von
[quote]Könnten Sie das Makro so machen dass es funktioniert[/quote]
also bei mir funktioniert das in A1 verlinkte Makro problemlos. Das einzige was gemacht werden muss ist den Verweis auf Microsoft Scripting Runtime aktivieren und die Verzeichnisse anpassen.

- wo fügst du das Makro ein?
- hast du den Verweis aktiviert?
- hast du die Verzeichnisse angepasst und existieren diese auch?
- welche Fehler genau bekommst du und wo? ("jetzt hängt das Makro" ist keine gültige Fehlermeldung)
0 Punkte
Beantwortet von Einsteiger_in (47 Punkte)
Hallo,
ich füge das Makro in Outlook 2016 ein
Verweis ist aktiv
Verzeichnisse existieren
Fehler ist hier [b]Set Folder = Fso.GetFolder(m_Send)[/b][u]
Folder= Nothing
0 Punkte
Beantwortet von
na perfekt,
"Fehler ist hier"
wieder eine klasse Fehlermeldung

und ein letztes mal, ist m_send wie im verlinkten Beispiel außerhalb deklariert oder nicht?
...