Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1592to1596
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
Outlook öffnen - E-Mail Adresse in Zelle
26.11.2017 14:35:43
Hans
Hallo Forum,
meine Tabelle bezieht aus einer Access Datenbank (in Access als Hyperlink formatiert) in die Zelle "BE12" eine E-Mail Adresse und in "BE13" eine Web Adresse.
Nun möchte ich gern, jeweils einen Schaltbutton erstellen, der entsprechend Outlook oder Internet Explorer öffnet.
Ich hab schon in Google einiges gefunden, komme aber einfach mit der Anpassung nicht klar.
Vielen Dank für eure Anregungen
Hans
Option Explicit
Private Sub CommandButton1_Click()
Dim olApp As Object, olMailItm As Object, i, lz, k As Integer, Pfad As String
Pfad = "C:\Test\" 'Hier Pfad anpassen
lz = Cells(Rows.Count, 1).End(xlUp).Row
i = 2
weiter:
Do Until i > lz
Set olApp = CreateObject("Outlook.Application")
Set olMailItm = olApp.CreateItem(0)
Cells(i, 1).Select
If ActiveCell.Value <> "" Then
With olMailItm
.To = Cells(i, 1).Value
.Subject = Cells(i, 2).Value
.Body = _
"Hallo " & Cells(i, 3).Value & "," & _
Chr(13) & _
Chr(13) & _
"Hierk kommt der Text" & Cells(i, 5).Value & _
Chr(13) & _
Chr(13) & _
"Hier kommt die Info" & Cells(i, 6).Value & _
Chr(13) & _
Chr(13) & _
Chr(13) & _
"Mit freundlichen Grüßen" & _
Chr(13) & _
Chr(13) & _
Chr(13)
.ReadReceiptRequested = True
If Dir(Pfad & Cells(i, 4).Value) <> "" Then 'Abfrage ob Anhang vorhanden
.Attachments.Add Pfad & Cells(i, 4).Value
End If
.Display 'alternativ ".Send" für direktes Versenden
End With
Else

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Keine Vorschläge ? owT.
26.11.2017 18:13:27
Hans
x
Erste Erfolge aber wie geht es weiter?
26.11.2017 18:38:17
Hans
Hallo Forum,
mir fallen gleich die Augen aus dem Kopf, so viel hab ich schon gelesen.
Mein erster Erfolg: Outlook wird geöffnet und ist bereit zum E-Mail schreiben.
Soweit bin ich selbst schon gekommen.
Sub mail()
Dim OL As Object ' Outlook.Application
Dim OLApp As Object ' Outlook.AppointmentItem
Set OL = CreateObject("Outlook.Application")
Set OLApp = OL.CreateItem(0)
With OLApp
.Subject = "Neue Nachriten von uns"
.Body = "Hallo wir haben gute Nachrichte für Sie:"
.display
End With
Set OLApp = Nothing
Set OLApp = Nothing
End Sub
Nun mein Problem:
Wie bekomme ich Excel dazu zu prüfen ob in Zelle "BE12" eine E-Mail Adresse ist so dass der Schaltbutton dann auch wirksam werden kann?
Also "kein Eintrag in Zelle BE12" dann Fehlermeldung "Keine Mailadresse vorhanden" sonst Outlook öffnen und Mailadresse in Empfänger eintragen.
Vielen Dank für eure Hilfe
Anzeige
AW: Erste Erfolge aber wie geht es weiter?
26.11.2017 18:53:21
Nepumuk
Hallo Hans,
teste mal:
Option Explicit

Private Sub CommandButton1_Click()
    Dim objOutlook As Object ' Outlook.Application
    Dim objMail As Object ' Outlook.AppointmentItem
    Dim objRegEx As Object
    Dim blnMailaddressOk As Boolean
    
    If Not IsEmpty(Cells(12, 57).Value) Then
        
        Set objRegEx = CreateObject("VBScript.RegExp")
        With objRegEx
            .Global = True
            .Pattern = "^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$"
            .IgnoreCase = True
            blnMailaddressOk = .Test(Cells(12, 57).Value)
        End With
        Set objRegEx = Nothing
        
        If blnMailaddressOk Then
            
            Set objOutlook = CreateObject("Outlook.Application")
            Set objMail = objOutlook.CreateItem(0)
            
            With objMail
                .To = Cells(12, 57).Value
                .Subject = "Neue Nachriten von uns"
                .Body = "Hallo wir haben gute Nachrichte für Sie:"
                .Display
            End With
            Set objMail = Nothing
            Set objOutlook = Nothing
            
        Else
            Call MsgBox("Keine gültige Mailadresse angegeben.", vbExclamation, "Hinweis")
        End If
    Else
        Call MsgBox("Keine Mailadresse angegeben.", vbExclamation, "Hinweis")
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Erste Erfolge aber wie geht es weiter?
26.11.2017 19:19:43
Hans
Hallo Nepumuk,
Hier bekomme ich folgenden Syntax Fehler:
Userbild
Hans
AW: Erste Erfolge aber wie geht es weiter?
26.11.2017 19:20:50
Hans
Hallo Nepumuk,
hier bekomme ich diesen Syntax Fehler:
Userbild
Hans
AW: Erste Erfolge aber wie geht es weiter?
26.11.2017 18:54:28
Sepp
Hallo Hans,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub mail()
Dim OLApp As Object ' Outlook.Application
Dim OLMail As Object ' Outlook.AppointmentItem
Dim strTo As String

With Sheets("Tabelle1") 'Tabelenname anpassen!
  If IsValidMailAddress(.Range("BE12")) Then
    strTo = .Range("BE12")
  Else
    MsgBox "Keine Mailadresse vorhanden!"
    Exit Sub
  End If
End With

Set OLApp = CreateObject("Outlook.Application")
Set OLMail = OLApp.CreateItem(0)

With OLMail
  .Subject = "Neue Nachriten von uns"
  .Body = "Hallo wir haben gute Nachrichte für Sie:"
  .To = strTo
  .display
End With


Set OLApp = Nothing
Set OLMail = Nothing
End Sub

Private Function IsValidMailAddress(ByVal strAddress As String) As Boolean
Dim oRegExp As Object
Set oRegExp = CreateObject("vbscript.regexp")

With oRegExp
  .Pattern = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|" & _
    "}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:" & _
    "[a-z0-9-]*[a-z0-9])?"
  
  .IgnoreCase = True
  
  IsValidMailAddress = .test(strAddress)
End With

Set oRegExp = Nothing

End Function

Gruß Sepp

Anzeige
@Nepumuk @Sepp
26.11.2017 19:14:59
Hans
Moin,
langsam beginne ich die Makro Anweisungen lesen zu können. Steige da aber noch immer nicht ganz durch.
Meinen Code hab ich bereits im Button eingefügt:
Sub mail()
Dim OL As Object ' Outlook.Application
Dim OLApp As Object ' Outlook.AppointmentItem
Set OL = CreateObject("Outlook.Application")
Set OLApp = OL.CreateItem(0)
With OLApp
.Subject = "Neue Nachriten von uns"
.Body = "Hallo wir haben gute Nachrichte für Sie:"
.display
End With
Set OLApp = Nothing
Set OLApp = Nothing
End Sub
Nun hab ich das neue von euch versucht zu verwenden, dabei kommt dann die Fehlermeldung, dass das Makro nicht in der Arbeitsmappe vorhanden ist...
Muss ich noch Module erstellen oder den Code in die Arbeitsmappe einfügen ?
Hans
Anzeige
AW: @Nepumuk @Sepp
26.11.2017 19:16:45
Sepp
Hallo Hans,
Rechtsklick auf die Schaltfläche > Makro zuweisen > Das entsprechende Makro auswählen
Gruß Sepp

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige