HERBERS Excel-Forum - die Beispiele

Thema: Arbeitsmappe zeitgesteuert per Email an einen Verteiler versenden

Home

Gruppe

Extern

Problem

Wie kann ich zeitgesteuert eine bestimmte Arbeitsmappe öffnen, Daten per VBA-Code eintragen lassen, per Email versenden und wieder schließen?

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.
ClassModule: Tabelle1

Private Sub cmdStart_Click()
  Call Versenden
End Sub

ClassModule: DieseArbeitsmappe

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Call StopEmail
End Sub

StandardModule: basMain

Public Const gsMacro As String = "SendEmail"
Public gdNextTime As Double

Private Sub SendEmail()
   Dim wks As Worksheet
   Dim iRow As Integer
   Dim sFile As String
   Application.ScreenUpdating = False
   sFile = Range("D2").Value
   If Dir(sFile) = "" Then
      Beep
      MsgBox "Zu versendende Datei nicht gefunden!"
   Else
      Application.EnableEvents = False
      On Error GoTo ERRORHANDLER
      Workbooks.Open Filename:=sFile, updatelinks:=False
      iRow = 1
      With ThisWorkbook.Worksheets("Tabelle1")
         Do Until IsEmpty(.Cells(iRow, 1))
            ActiveWorkbook.SendMail .Cells(iRow, 1).Value, Date
            iRow = iRow + 1
         Loop
      End With
      ActiveWorkbook.Close savechanges:=False
   End If
   Call StartEmail
ERRORHANDLER:
      Application.EnableEvents = True
      Application.ScreenUpdating = True
End Sub

Sub StartEmail()
   Dim iIntervall As Integer
   iIntervall = Range("D1").Value
   gdNextTime = Now + TimeSerial(0, 0, iIntervall)
   Application.OnTime earliesttime:=gdNextTime, _
      procedure:=gsMacro, schedule:=True
End Sub

Sub StopEmail()
   On Error Resume Next
   Application.OnTime earliesttime:=gdNextTime, _
      procedure:=gsMacro, schedule:=False
End Sub

Beiträge aus dem Excel-Forum zu den Themen Extern und Email

Excel Makro zum Email Versand aus Vorlagen-Excel Screenshot als Emailanhang
Fehler im VBA-Code - Excel per Email verschicken? Brauche Hilfe ! Copy Paste und Email Makro
Dateiname externer Datei ändern Tabelle per Email- Versand unterbrechen
Tabellenblatt aus externer Exceldatei kopieren ConboBox mit externe Daten füllen
Email automatisch aus Excel versenden Email in Excel
Wert in externer Datei suchen Bei erreichen eines best. Datums Email schicken
Aufruf externer Programme Bei erreichen eines best. Datums Email schicken
hyperlink als email mit betreff und cc aus spalte Externe Bezüge auslesen mit VBA
Externe Verküpfung anpassen Tabelle teilen und dann per email versenden
Spalte mit email Adressen auslesen Pivot mit Externer DB am Limit?
Outlook Email in Excel einlesen HTML-eMailversand
Commandbutton mit Emailaddi belegen Externe Verknüpfungen
Blätter in Externer Arbeitsmappe einblenden Tabellenblatt versenden, Email Text
externes Verzeichnis ansprechen Externe Datenquelle via VBA
Pivot mit Externer DB UNION funzt nich Nur externe Bezüge rausnehmen
*xlt-Dateien als externe Datenquelle nutzen Externes Programm öffnen
Aus Excel eine EMail generieren und senden Tabellenblatt per Email versenden
Makro: Bezug auf externes xls-File? Wert an externes Programm übergeben
Externe Excel-Verknüpfungen automatisiert ändern Verlinkung externer Arbeitsmappen
Tabelle in externer Datei löschen externe Bezüge suchen/ersetzen
neue Zeile und externe Bezüge.... Email versenden ! Mails gehen nicht immer raus ?
Externe Verknüpfung finden Exceltabelle per eMail senden
externe Bezüge Summenprodukt + Externe Bezüge
Datenbank in externer Datei Fehler beim Kopieren von externer Tabelle
Email an in Zelle muss weg eMail