Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Mail-Adresse einsetzen

Forumthread: Mail-Adresse einsetzen

Mail-Adresse einsetzen
08.01.2025 09:49:57
sigrid
Guten Morgen,
nachträglich noch allen ein gesundes neues Jahr.

Ich habe eine Musterdatenbank erstellt, siehe Anlage.
Ich möchte gern, wenn man auf die Adresse in der Zeile klickt, egal welche Zelle und die Zelle in
der Spalte "N" (14)
ist leer, soll eine Meldung kommen, keine Mail-Adresse vorhanden.
Dann sollte sich eine Userform oder Textbox öffnen, so das man dort die Mail-Adresse eingeben kann und
bei OK ein Makro hinterlegt wird zum Speichern.
Vielleicht kann mir jemand einen Tipp geben oder hat so ein Muster ?
https://www.herber.de/bbs/user/174744.xlsm
mfg sigrid
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mail-Adresse einsetzen
08.01.2025 10:42:10
MCO
Moin, Sigrid!

Diesen Code kannst du ins Tabellenmodul deiner xlsm packen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Cells(Target.Row, "A") > "" And Cells(Target.Row, "N") = "" Then
Cells(Target.Row, "N") = Application.InputBox("Email:", "Adresse zum Nachtragen")
ThisWorkbook.Save
End If
End Sub


Gruß, MCO
Anzeige
MCO sehr gut !
08.01.2025 14:38:02
sigrid
AW: Mail-Adresse einsetzen
08.01.2025 10:47:35
Alwin Weisangler
Hallo Sigrid,

ins Modul des Tabellenblattes:



Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim objRegEx As Object, objMatch As Object, iZeile&
Set objRegEx = CreateObject("vbscript.regexp")
iZeile = Target.Row
With objRegEx
.Global = True
'.Pattern = "[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}" ' für den Fall dass im local-part Leerzeichen zugelassen sind.
.Pattern = "^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$"
.IgnoreCase = True
Set objMatch = .Execute(Cells(iZeile, 14))
End With
If objMatch.Count = 0 Then
MsgBox Cells(iZeile, 14) & vbCrLf & "ist keine gültige EmailAdresse"
End If
Set objRegEx = Nothing
Set objMatch = Nothing
End Sub

Es überprüft via RegEx noch zusätzlich so einigermaßen, ob es sich um eine gültige Email Adresse handelt.

Gruß Uwe
Anzeige
AW: Mail-Adresse einsetzen
08.01.2025 10:51:08
Alwin Weisangler
Sorry, da hatte ich vergessen Spalte N auszuschließen.

dann so:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim objRegEx As Object, objMatch As Object, iZeile&
Set objRegEx = CreateObject("vbscript.regexp")
iZeile = Target.Row
If Target.Column = 14 Then Exit Sub
With objRegEx
.Global = True
'.Pattern = "[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}" ' für den Fall dass im local-part Leerzeichen zugelassen sind.
.Pattern = "^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$"
.IgnoreCase = True
Set objMatch = .Execute(Cells(iZeile, 14))
End With
If objMatch.Count = 0 Then
MsgBox Cells(iZeile, 14) & vbCrLf & "ist keine gültige EmailAdresse"
End If
Set objRegEx = Nothing
Set objMatch = Nothing
End Sub


Gruß Uwe
Anzeige
AW: Mail-Adresse einsetzen
08.01.2025 10:50:49
daniel
Hi
mit diesem Code im Modul des Tabellenblatts:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim adr As String
If Target.Row > 3 Then
If Target.CountLarge = 1 Then
If Cells(Target.Row, 14) = "" Then
Do
adr = InputBox("Mailadresse, ""n.v."" für nicht vorhanden")
If adr Like "*@*.*" Or adr = "n.v." Then
Cells(Target.Row, 14) = adr
Exit Do
ElseIf adr = "" Then
Exit Do
Else
MsgBox "bitte korrekte Mailadresse eingeben"
End If
Loop
End If
End If
End If

End Sub


Gruß Daniel
Anzeige
Danke auch Dir Daniel Supi -)
08.01.2025 14:41:18
sigrid
Danke Case ! -)
08.01.2025 14:44:00
sigrid
Anzeige
AW: Mail-Adresse einsetzen
08.01.2025 11:03:43
UweD
Hallo


- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Code rechts reinkopieren


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim RNG As Range, SP As Integer, MA As String
Set RNG = Range("A:O")
SP = 14 'Spalte N

If Not Intersect(Target, RNG) Is Nothing Then
With Cells(Target.Row, SP)
If .Value = "" Then
MA = InputBox("Keine Mailadresse vorhanden" & vbLf & _
"Bitte angeben", "Achtung", "Name@firma.de")
If MA > "" Then
ActiveSheet.Hyperlinks.Add Anchor:=Cells(Target.Row, SP), Address:= _
"mailto:" & MA, TextToDisplay:=MA
Else
Exit Sub
End If
End If
End With
End If
End Sub



LG UweD
Anzeige
Danke UweD Supi ! An ALLE...
08.01.2025 14:47:31
sigrid
Hallo zusammen,
konnte mich erst jetzt melden Sorry !
Danke an ALLE, sehr nett für die Unterstützung !

mfg sigrid
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18