Mittels Makro ein Formular an 2 Mails gleichz...
Holger
mein Subject war ein bisserl lang, daher nochmal komplett:
Betreff: Mittels Makro ein Formular an 2 Mails gleichzeitig über Outlook 2003 senden.
*******************
IST - Zustand:
Ich bin Gitarrenlehrer und verschicke an meine Schüler sogenannte Nachbereitungen nach der Stunde. Dieser Vorgang kostet Zeit und ich will ihn weitestgehend automatisieren. Bis dato ist mir folgendes Makro funktionsfähig gelungen:
Sub Email()
'Bildschirmaktualisierung während des Makro-Prozesses ausstellen
Application.ScreenUpdating = False
'Arbeitsblatt EMAIL auswählen
Sheets("EMAIL").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'dort evtl. von vorher noch vorhandene Zellen löschen
Selection.Delete Shift:=xlUp
'Arbeitsblatt YOUTUBE auswählen
Sheets("YOUTUBE").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'Kopieren durchführen, jedoch von eingeblendeten Zellen
Selection.SpecialCells(xlCellTypeVisible).Copy
'Arbeitsblatt EMAIL auswählen
Sheets("Email").Select
'dort in Zelle A1 "Deine Youtube - Links für heute" schreiben
Range("A1") = "Deine Youtube - Links für heute"
'dort die Zelle A2 auswählen
Range("A2").Select
'in das aktive Blatt aus dem Cache einfügen
ActiveSheet.Paste
'in das Feld springen, wo der Empfängername im Klartext steht
Range("I2").Select
'den Empfängernamen kopieren
Selection.Copy
'das Arbeitsblatt "ADRESSEN" auswählen
Sheets("ADRESSEN").Select
'Dort Zelle A1 anwählen
Range("A1").Select
'Cache in das Blatt "ADRESSEN" einfügen
ActiveSheet.Paste
'Arbeitsblatt WIKIPEDIA auswählen
Sheets("WIKIPEDIA").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'Kopieren durchführen, jedoch von eingeblendeten Zellen
Selection.SpecialCells(xlCellTypeVisible).Copy
'Arbeitsblatt EMAIL auswählen
Sheets("Email").Select
'von der untersten Zeile der letztgültigen Markierungen noch eine Zeile nach unten in die 1. _
unmarkierte Zeile gehen
Cells(1, 1).End(xlDown).Offset(1, 0).Select
'dort "Deine Wiki - Links für heute" schreiben
ActiveCell.Value = "Deine Wiki - Links für heute"
'von dort eine Zelle nach unten gehen
ActiveCell.Offset(1, 0).Select
'genau da den Cache einfügen
ActiveSheet.Paste
'dort das linke Feld J1 auswählen
Range("J1").Select
'ab dort die komplette obere Zeile markieren
Range(Selection, Selection.End(xlToRight)).Select
'alle darunter liegenden Zellen auch markieren
Range(Selection, Selection.End(xlDown)).Select
'diesen markierten Bereich ausblenden
Selection.EntireColumn.Hidden = True
'Variable "rng" als Range-Objekt festlegen
Dim rng As Range
'Variable "sAddress" als String-Objekt festlegen
Dim sAddress As String
'die Variable "rng" mit dem Bereich A:IV aus dem EMAIL-Tabellenblatt belegen
Set rng = Sheets("Email").Range("A:IV")
'die Variable "sAddress" mit der empfängerabhängigen Emailadresse aus dem ADRESSEN- _
Tabellenblatt, Zelle B1 belegen
sAddress = Sheets("ADRESSEN").Range("B1").Value
'generiert eine neue Arbeitsmappe'
Workbooks.Add 1
'kopiert den Inhalt der Variabeln "rng" in Zelle A1 von der neuen Arbeitsmappe
rng.Copy Range("A1")
'Ändert die Breite einer Tabellenspalte, um sich der Textbreite anzupassen, ohne dass sich _
Textumbrüche änderten
Columns.AutoFit
'sendet die aktive Arbeitsmappe mittels dem in der Registry festgelegten Standard-Mail-Programm _
_
_
_
an die
'empfängerabhängige Email-Adresse aus Blatt "ADRESSEN", Betreff ist "Deine Lernunterlagen"
ActiveWorkbook.SendMail sAddress, "Deine Lernunterlagen"
'schließt die aktive Arbeitsmappe ohne die Änderungen abspeichern zu wollen
ActiveWorkbook.Close savechanges:=False
'Bildschirmaktualisierung nach diesem Makro-Prozesses wieder anstellen
Application.ScreenUpdating = True
'Beendet das Makro
End Sub
**********************************************************
mein Problem:
Abschnitt:
'sendet die aktive Arbeitsmappe mittels dem in der Registry festgelegten Standard-Mail-Programm an die
'empfängerabhängige Email-Adresse aus Blatt "ADRESSEN", Betreff ist "Deine Lernunterlagen"
ActiveWorkbook.SendMail sAddress, "Deine Lernunterlagen"
eine meiner Lerngruppen besteht aus 2 Gitarristinnen. Sie haben unterschiedliche Email - Adressen.
Dazu habe ich in Arbeitsblatt "ADRESSEN" testweise in Feld B1 (dieses Feld liefert die Zielmailadresse) test@test.test und de@de.de geschrieben. Formatierung:
test@test.test; de@de.de
Nach Ausführen von Makro Email() kam am "Bug-Punkt" ActiveWorkbook.SendMail sAddress, "Deine Lernunterlagen" folgende Fehlermeldung:
Laufzeitfehler '9':
Index außerhalb des gültigen Bereichs.
Der Code funzt, wenn in B1 von "ADRESSEN" nur (z. B.) mustermann@mustermann.de steht (ohne ; - Feldtrennzeichen und 2. Adr.)
Frage: Wie kriege ich es hin, dass mit einer automatisierten Mailverschickung test@test.test UND de@de.de in einem an-Feld von EINER Outlook 2003 - Mail stehen oder meinetwegen auch de@de.de ins CC kommt?
Danke für Tipps!
LG Holger Rogoll