Ich bin auf der Suche nach einer Möglichkeit, E-Mails einfach zu versenden. Ich habe eine Excel-Datei, die ich jeden Tag etwa 20 Zeilen mit einer Kundennummer und Bestellnummer hinzufügen. Auch eine E-Mail-Adresse, verschiedene Themen und Gremien je nach Land. Ich benutze Lotus Notes und habe den ganzen Code eingerichtet, um eine Datei zu senden und anzuhängen. Mein Makro zum Senden von E-Mails verwendet Offsets für die aktive Zelle. Momentan klicke ich auf eine bestimmte Zelle und drücke dann eine Taste, um die E-Mail zu senden.Hyperlink oder Schaltfläche zum Ausführen von Makros mit aktiven Zellenversätzen
Allerdings möchte ich es ändern, so dass Menschen auf einen Hyperlink oder eine Schaltfläche in jeder Zeile klicken können, um die E-Mail zu erstellen. Ich habe es versucht, Tasten aus dem Formular und ActiveX-Steuerelemente, aber das machte meine Datei zu langsam.
Ich schaute dann in eine Möglichkeit, ein Makro zu aktivieren, wenn Sie auf einen Hyperlink klicken.
Ich fand dies im Internet.
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Select Case Target.Range.Address
Case "$B$3"
Call myMacro
Case Else
End Select
End Sub
Das funktioniert aber nur für den Link in der Zelle B3. Wie mache ich es so, dass wenn ich auf einen Link in der Spalte B klicke, das Makro ausgeführt wird?
Zögern Sie nicht, lassen Sie mich wissen, wenn es auch andere Lösungen gibt.
Mit freundlichen Grüßen
Edit1:
Dies ist der Code für die E-Mail-
Sub myMacro(Target As Range)
'Send an e-mail & attachment using Lotus Not(s)
'Original Code by Nate Oliver (NateO)
'Declare Variables for file and macro setup
Dim UserName As String, MailDbName As String, Recipient As String, ccRecipient As String, Attachment1 As String
Dim Maildb As Object, MailDoc As Object, AttachME As Object, Session As Object
Dim EmbedObj1 As Object
With Application
.ScreenUpdating = False
.DisplayAlerts = False
' Open and locate current LOTUS NOTES User
Set Session = CreateObject("Notes.NotesSession")
UserName = Session.UserName
MailDbName = _
Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.IsOpen = True Then
Else
Maildb.OPENMAIL
End If
Set MailDoc = Maildb.CreateDocument
MailDoc.Form = "Memo"
Recipient = Target.Offset(0, 1).Value
MailDoc.SendTo = Recipient
ccRecipient = Target.Offset(0, 2).Value
MailDoc.CopyTo = ccRecipient
MailDoc.Subject = Target.Offset(0, 3).Value
MailDoc.Body = Target.Offset(0, 4).Value
Dim Orderno
Dim myPath
Dim myFile
Orderno = Target.Offset(0, 5).Value
myPath = ThisWorkbook.Path & "D:\Berry\Order Confirmations\VBAtest\"
myFile = Dir(myPath & "*" & Orderno & "*.pdf*")
Attachment1 = (myPath & myFile)
MsgBox (Attachment1)
If Attachment1 <> "" Then
On Error Resume Next
Set AttachME = MailDoc.CREATERICHTEXTITEM("attachment1")
Set EmbedObj1 = AttachME.embedobject(1454, "attachment1", (myPath & myFile), "")
On Error Resume Next
End If
Set workspace = CreateObject("Notes.NotesUIWorkspace")
Call workspace.EDITDOCUMENT(True, MailDoc).GOTOFIELD("Body")
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj1 = Nothing
.ScreenUpdating = True
.DisplayAlerts = True
End With
errorhandler1:
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj1 = Nothing
einfach eine Beobachtungs Frage:
dann in Ihrem Makro Sie Folgendes tun könnte, wäre ist es möglich, Ihre Excel-Anwendung in eine Notes-Anwendung umzuwandeln? Keine Antwort erforderlich. –