Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
704to708
704to708
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datei per Email verschicken - Sicherheitsabfrage

Datei per Email verschicken - Sicherheitsabfrage
07.12.2005 15:38:43
Patrick
Hallo,
da Ihr mir schon oft helfen konntet, zähle ich wiederum auf Euch.
Ich möchte eine Excel-Datei per Macro als Email verschicken. Das klappt auch wunderbar, jedoch bekomme ich zuvor eine Abfrage:
---------------------------------------------------------------------------
Ein Programm versucht, auf Ihre in Outlook gespeicherten E-Mail-Adressen zuzugreifen. Möchten Sie dies zulassen?
Falls dies....
---------------------------------------------------------------------------
Ich muß manuell den Zugriff gewähren und bestätigen. Kann man das umgehen oder ins Macro schreiben?
Hier das Macro:
' Outlook Applikation
Dim ool As Outlook.Application
Dim oInspector As Outlook.Inspector
Dim oMail As Outlook.MailItem
Dim myattachments As Variant
' Für Inputbox "EMailadresse-Änderung"
Dim Mldg, Titel, Voreinstellung, MailAdress
' Adresse anzeigen und Änderung ermöglichen
'Mldg = "Ist die angegebene Emailadresse richtig?"
Titel = "Mailadresse"
Voreinstellung = "test@test.de"
MailAdress = Voreinstellung
' Wurde Abbrechen gedrückt, dann alles beenden
'If MailAdress = "" Then Exit Sub
' Verweis zu Outlook + neue Nachricht
Set ool = CreateObject("Outlook.Application")
Set oMail = ool.CreateItem(olMailItem)
Set myattachments = oMail.Attachments
' Befreff-Zeile
oMail.Subject = "Vertrag / " & [bi1] & " / " & [h5] & " (" & Format(Date, "Short Date") & ")"
' An-Zeile (Empfänger)
oMail.To = MailAdress ' "g.huber@unilog.at"
oMail.Recipients.ResolveAll
oMail.Display
' Texteingabe (Nachricht selbst)
oMail.Body = "EDV-Code: " & [bi1] & Chr(10) & "Hotelname: " & [h5] & Chr(10) & "Gültigkeit: " & [h3] & "-" & [z3] & Chr(10) & "Check am: " & [a1]
anhang = ThisWorkbook.FullName
' Anhang
' Nachfolgend ein Beispiel. Suchen Sie sich eine Datei auf
' Ihrem Rechner aus - vollständiger Pfad muß mitangegeben
' sein.
' Es können auch weitere Dateien angegeben werden.
' Hierzu einfach mit myattachments.Add "?" fortsetzen.
myattachments.Add anhang
' Speicher freigeben
Set ool = Nothing
Set oInspector = Nothing
Set oMail = Nothing
Ich zähle auch Euch.
Gruß
Patrick

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nicht vba-problem
07.12.2005 15:41:43
Mischa
hi,
das dürfte nicht ein vba-problem sein, sondern an deiner firewall liegen.
oder an deinem outlook. solche abfragen wurden erstellt, um das massenmailing von würmern zu verhindern.
mischa richter
AW: nicht vba-problem
07.12.2005 16:07:50
Patrick
Hallo Mischa,
ich habe ja auch nicht gesagt, es wäre ein VBA-Problem. Ich möchte es nur gerne mit VBA lösen.
Kann man nicht einfach diese Bestätigung per VBA übergeben, so daß ich diese nicht immer manuell durchführen muß? Das geht doch mit dem Blattschutz auch.
Gruß
Patrick
AW: nicht vba-problem
07.12.2005 17:13:18
Michael
hi,
übergeben kannste werte oder referenzen nur dann an andere anwendungen, wenn diese das auch erwarten. also zb. bei api-functionen geht das ja.
ich gebe nachstehend mal meinen code (vb6.0) bei, mit dem ich mails erstelle. der läuft unter outlook2000. es gibt einige unterschiede zu deinem, versuchs doch mal mit meinen objekten.!
Mischa

Private Sub SendMailMitOutlook2000 _
(ByVal Adressat As String, _
ByVal FahrtZielA As String, _
ByVal Fahrtag As String, _
ByVal Result As String, _
Optional ByVal Text2 As String, _
Optional ByVal AntragVom As String, _
Optional ByVal BenutzungsZeitraum As String)
If mdl_iniFile.bolEMailVersandMöglich = False Then Exit Sub
On Error GoTo ErrHndl2
'Diese Prozedur passt nur für Office 2000, also Version 9.0
'für 10.0 also XP müssten die Objekte leicht geändert werden
'    If Application.Version <> "9.0" Then
'        MsgBox "Für diese Office-Version (" & Application.Version & ")benötigen Sie ein Update des Planungsprogrammes!", vbCritical, "Kontakt zum Entwickler erforderlich:"
'        Exit Sub
'    End If
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim EmailAdressat1 As String
EmailAdressat1 = Adressat
Dim Betreffzeile As String
Betreffzeile = "Ihre Fahrzeugbestellung nach: " & FahrtZielA & " für den " & Fahrtag
Dim NachrichtenText As String
NachrichtenText = strBetreffzeileText1 & AntragVom & vbCrLf & vbCrLf & _
"Für Ihre geplante Dienstfahrt nach " & FahrtZielA & vbCrLf & _
"am " & Fahrtag & vbCrLf & _
Result & BenutzungsZeitraum & vbCrLf & vbCrLf & _
Text2 & vbCrLf & _
strGrussZeile
Set objOutlook = CreateObject("Outlook.Application")
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
Set objOutlookRecip = .Recipients.Add(EmailAdressat1)
objOutlookRecip.Type = olTo
.Subject = Betreffzeile
.Body = NachrichtenText & vbCrLf      'ab version 1.6.2 mit Enter am Ende für die Anlage
'.Importance = olImportanceHigh
.Save
'.Recipients.Add (BCC_an_Entwickler)
'objOutlookRecip.Type = olBCC
'ab Version 1.6.2. bei Genehmigungsemail Anlage:
If mdl_iniFile.bolBeiGenehmgigungsEmailDateianlage = True And _
Text2 = strGenehmigungstext2 Then
.Attachments.Add mdl_iniFile.strPfadUndNameDAteianlageGenEmail ' , olByReference  ',, Len(NachrichtenText)
End If
.Save
'ab Version 2.6:
If mdl_iniFile.bolErstellteMailGleichSenden = True Then
.Send
End If
End With
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
mdl_log.LoginOutAufzeichnen "Email erstellt an: " & EmailAdressat1 & ", Resultat: " & Result
Exit Sub
ErrHndl2:
MsgBox "Es trat ein Fehler beim Versand/Erstellen der EMail auf: " & vbCrLf & Err.Description, _
vbCritical + vbOKOnly, "Fehler beim Emailerstellen:"
mdl_log.ErrorAufzeichnen "Fehler beim Mailen: " & Result & Err.Description
End Sub

Anzeige
AW: nicht vba-problem
07.12.2005 17:24:16
Patrick
Hi Mischa,
kurze Frage: wo binde ich das Script ein?
Gruß
Patrick
AW: nicht vba-problem
07.12.2005 19:09:11
Mischa
hi,
dieser code dürfte in einem normalen modul von excel auch laufen.
musst halt den entsprechendne verweis auf die ms outlook lib setzen.
wenn du mit dem verweis probleme hast, maile ich dir mal den screenshot wie es aussehen muss.
mischa
AW: nicht vba-problem
07.12.2005 17:13:35
Michael
hi,
übergeben kannste werte oder referenzen nur dann an andere anwendungen, wenn diese das auch erwarten. also zb. bei api-functionen geht das ja.
ich gebe nachstehend mal meinen code (vb6.0) bei, mit dem ich mails erstelle. der läuft unter outlook2000. es gibt einige unterschiede zu deinem, versuchs doch mal mit meinen objekten.!
Mischa

Private Sub SendMailMitOutlook2000 _
(ByVal Adressat As String, _
ByVal FahrtZielA As String, _
ByVal Fahrtag As String, _
ByVal Result As String, _
Optional ByVal Text2 As String, _
Optional ByVal AntragVom As String, _
Optional ByVal BenutzungsZeitraum As String)
If mdl_iniFile.bolEMailVersandMöglich = False Then Exit Sub
On Error GoTo ErrHndl2
'Diese Prozedur passt nur für Office 2000, also Version 9.0
'für 10.0 also XP müssten die Objekte leicht geändert werden
'    If Application.Version <> "9.0" Then
'        MsgBox "Für diese Office-Version (" & Application.Version & ")benötigen Sie ein Update des Planungsprogrammes!", vbCritical, "Kontakt zum Entwickler erforderlich:"
'        Exit Sub
'    End If
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim EmailAdressat1 As String
EmailAdressat1 = Adressat
Dim Betreffzeile As String
Betreffzeile = "Ihre Fahrzeugbestellung nach: " & FahrtZielA & " für den " & Fahrtag
Dim NachrichtenText As String
NachrichtenText = strBetreffzeileText1 & AntragVom & vbCrLf & vbCrLf & _
"Für Ihre geplante Dienstfahrt nach " & FahrtZielA & vbCrLf & _
"am " & Fahrtag & vbCrLf & _
Result & BenutzungsZeitraum & vbCrLf & vbCrLf & _
Text2 & vbCrLf & _
strGrussZeile
Set objOutlook = CreateObject("Outlook.Application")
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
Set objOutlookRecip = .Recipients.Add(EmailAdressat1)
objOutlookRecip.Type = olTo
.Subject = Betreffzeile
.Body = NachrichtenText & vbCrLf      'ab version 1.6.2 mit Enter am Ende für die Anlage
'.Importance = olImportanceHigh
.Save
'.Recipients.Add (BCC_an_Entwickler)
'objOutlookRecip.Type = olBCC
'ab Version 1.6.2. bei Genehmigungsemail Anlage:
If mdl_iniFile.bolBeiGenehmgigungsEmailDateianlage = True And _
Text2 = strGenehmigungstext2 Then
.Attachments.Add mdl_iniFile.strPfadUndNameDAteianlageGenEmail ' , olByReference  ',, Len(NachrichtenText)
End If
.Save
'ab Version 2.6:
If mdl_iniFile.bolErstellteMailGleichSenden = True Then
.Send
End If
End With
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
mdl_log.LoginOutAufzeichnen "Email erstellt an: " & EmailAdressat1 & ", Resultat: " & Result
Exit Sub
ErrHndl2:
MsgBox "Es trat ein Fehler beim Versand/Erstellen der EMail auf: " & vbCrLf & Err.Description, _
vbCritical + vbOKOnly, "Fehler beim Emailerstellen:"
mdl_log.ErrorAufzeichnen "Fehler beim Mailen: " & Result & Err.Description
End Sub

Anzeige
AW: nicht vba-problem
07.12.2005 17:13:48
Michael
hi,
übergeben kannste werte oder referenzen nur dann an andere anwendungen, wenn diese das auch erwarten. also zb. bei api-functionen geht das ja.
ich gebe nachstehend mal meinen code (vb6.0) bei, mit dem ich mails erstelle. der läuft unter outlook2000. es gibt einige unterschiede zu deinem, versuchs doch mal mit meinen objekten.!
Mischa

Private Sub SendMailMitOutlook2000 _
(ByVal Adressat As String, _
ByVal FahrtZielA As String, _
ByVal Fahrtag As String, _
ByVal Result As String, _
Optional ByVal Text2 As String, _
Optional ByVal AntragVom As String, _
Optional ByVal BenutzungsZeitraum As String)
If mdl_iniFile.bolEMailVersandMöglich = False Then Exit Sub
On Error GoTo ErrHndl2
'Diese Prozedur passt nur für Office 2000, also Version 9.0
'für 10.0 also XP müssten die Objekte leicht geändert werden
'    If Application.Version <> "9.0" Then
'        MsgBox "Für diese Office-Version (" & Application.Version & ")benötigen Sie ein Update des Planungsprogrammes!", vbCritical, "Kontakt zum Entwickler erforderlich:"
'        Exit Sub
'    End If
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim EmailAdressat1 As String
EmailAdressat1 = Adressat
Dim Betreffzeile As String
Betreffzeile = "Ihre Fahrzeugbestellung nach: " & FahrtZielA & " für den " & Fahrtag
Dim NachrichtenText As String
NachrichtenText = strBetreffzeileText1 & AntragVom & vbCrLf & vbCrLf & _
"Für Ihre geplante Dienstfahrt nach " & FahrtZielA & vbCrLf & _
"am " & Fahrtag & vbCrLf & _
Result & BenutzungsZeitraum & vbCrLf & vbCrLf & _
Text2 & vbCrLf & _
strGrussZeile
Set objOutlook = CreateObject("Outlook.Application")
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
Set objOutlookRecip = .Recipients.Add(EmailAdressat1)
objOutlookRecip.Type = olTo
.Subject = Betreffzeile
.Body = NachrichtenText & vbCrLf      'ab version 1.6.2 mit Enter am Ende für die Anlage
'.Importance = olImportanceHigh
.Save
'.Recipients.Add (BCC_an_Entwickler)
'objOutlookRecip.Type = olBCC
'ab Version 1.6.2. bei Genehmigungsemail Anlage:
If mdl_iniFile.bolBeiGenehmgigungsEmailDateianlage = True And _
Text2 = strGenehmigungstext2 Then
.Attachments.Add mdl_iniFile.strPfadUndNameDAteianlageGenEmail ' , olByReference  ',, Len(NachrichtenText)
End If
.Save
'ab Version 2.6:
If mdl_iniFile.bolErstellteMailGleichSenden = True Then
.Send
End If
End With
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
mdl_log.LoginOutAufzeichnen "Email erstellt an: " & EmailAdressat1 & ", Resultat: " & Result
Exit Sub
ErrHndl2:
MsgBox "Es trat ein Fehler beim Versand/Erstellen der EMail auf: " & vbCrLf & Err.Description, _
vbCritical + vbOKOnly, "Fehler beim Emailerstellen:"
mdl_log.ErrorAufzeichnen "Fehler beim Mailen: " & Result & Err.Description
End Sub

Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige