• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Alias hyperlink in mailbutton

  • Onderwerp starter Onderwerp starter xmir
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

xmir

Gebruiker
Lid geworden
12 mrt 2011
Berichten
218
Hoi,

Ik heb in een excelletje een mailbutton gemaakt die een mailtje genereerd. In dat mailtje is een hyperlink opgenomen maar om dat mooier te maken zou ik daar ook nog graag een alias aan hangen maar ik kom er niet uit hoe ik dat kan doen.
Mijn code van de mailbody:

xMailBody = "Check de lijst even om te zien waar je ingedeeld bent:" & vbCrLf & "https://heeeele lange url waar ik graag een alias voor zou hebben"

Kan iemand mij vertellen hoe ik hier een alias aan toe kan voegen?
 
Maak de tekst in HTML en gebruik bij het maken van de mail dan niet .Body maar .HTMLBody
 
Maak de tekst in HTML en gebruik bij het maken van de mail dan niet .Body maar .HTMLBody

Oei kun jij me blij maken met de code want dit gaat mijn bescheiden kennis helaas tever :(

Dank alvast
 
Ik gebruik deze: Excel - Outlook

Code:
Sub EmailSelectedSheets()
'PURPOSE: Create email message with only Selected Worksheets attached
'SOURCE: www.TheSpreadsheetGuru.com

Dim SourceWB As Workbook
Dim DestinWB As Workbook
Dim OutlookApp As Object
Dim OutlookMessage As Object
Dim TempFileName As Variant
Dim ExternalLinks As Variant
Dim TempFilePath As String
Dim FileExtStr As String
Dim DefaultName As String
Dim UserAnswer As Long
Dim x As Long

'Optimize Code
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Application.DisplayAlerts = False

'Copy only selected sheets into new workbook
  Set SourceWB = ActiveWorkbook
  SourceWB.Windows(1).SelectedSheets.Copy
  Set DestinWB = ActiveWorkbook

'Check for macro code residing in
  If Val(Application.Version) >= 12 Then
    If SourceWB.FileFormat = 51 And SourceWB.HasVBProject = True Then
      UserAnswer = MsgBox("There was VBA code found in this xlsx file. " & _
        "If you proceed the VBA code will not be included in your email attachment. " & _
        "Do you wish to proceed?", vbYesNo, "VBA Code Found!")
    
    'Handle if user cancels
      If UserAnswer = vbNo Then
        DestinWB.Close SaveChanges:=False
        GoTo ExitSub
      End If
      
    End If
  End If

'Determine Temporary File Path
  TempFilePath = Environ$("temp") & "\"

'Determine Default File Name for InputBox
  If SourceWB.Saved Then
    DefaultName = Left(SourceWB.Name, InStrRev(SourceWB.Name, ".") - 1)
  Else
    DefaultName = SourceWB.Name
  End If

'Ask user for a file name
  TempFileName = Application.InputBox("What would you like to name your attachment? (No Special Characters!)", _
    "File Name", Type:=2, Default:=DefaultName)
    
    If TempFileName = False Then GoTo ExitSub 'Handle if user cancels
  
'Determine File Extension
  If SourceWB.Saved = True Then
    FileExtStr = "." & LCase(Right(SourceWB.Name, Len(SourceWB.Name) - InStrRev(SourceWB.Name, ".", , 1)))
  Else
    FileExtStr = ".xlsx"
  End If

'Break External Links
  ExternalLinks = DestinWB.LinkSources(Type:=xlLinkTypeExcelLinks)

    'Loop Through each External Link in ActiveWorkbook and Break it
      On Error Resume Next
        For x = 1 To UBound(ExternalLinks)
          DestinWB.BreakLink Name:=ExternalLinks(x), Type:=xlLinkTypeExcelLinks
        Next x
      On Error GoTo 0
      
'Save Temporary Workbook
  DestinWB.SaveCopyAs TempFilePath & TempFileName & FileExtStr

'Create Instance of Outlook
  On Error Resume Next
    Set OutlookApp = GetObject(class:="Outlook.Application") 'Handles if Outlook is already open
  Err.Clear
    If OutlookApp Is Nothing Then Set OutlookApp = CreateObject(class:="Outlook.Application") 'If not, open Outlook
    
    If Err.Number = 429 Then
      MsgBox "Outlook could not be found, aborting.", 16, "Outlook Not Found"
      GoTo ExitSub
    End If
  On Error GoTo 0

'Create a new email message
  Set OutlookMessage = OutlookApp.CreateItem(0)

'Create Outlook email with attachment
  On Error Resume Next
    With OutlookMessage
     .To = ""
     .CC = ""
     .BCC = ""
     .Subject = TempFileName
     .Body = "Please see attached." & vbNewLine & vbNewLine & "Chris"
     .Attachments.Add TempFilePath & TempFileName & FileExtStr
     .Display
    End With
  On Error GoTo 0

'Close & Delete the temporary file
  DestinWB.Close SaveChanges:=False
  Kill TempFilePath & TempFileName & FileExtStr

'Clear Memory
  Set OutlookMessage = Nothing
  Set OutlookApp = Nothing
  
'Optimize Code
ExitSub:
  Application.ScreenUpdating = True
  Application.EnableEvents = True
  Application.DisplayAlerts = True

End Sub
 
Laatst bewerkt:
mijn voorbeeld

Ik kom er niet uit dus ik voeg mijn excel even toe met alleen nog mijn eigen e-mailadres. De knop achter de gevulde rij is waar het om gaat. Die werkt op zich prima alleen krijg ik in het e-mailbericht een lelijke url waar ik dus graag een alias van zou maken.
Kunnen jullie aan de hand van mijn voorbeeld een aangepaste code met alias kunnen maken?
 

Bijlagen

Maak er eens dit van:
Code:
Private Sub CommandButton4_Click()
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    
    xMailBody = "Check de lijst even om te zien waar je ingedeeld bent." & "<br><a href=""https://solisservices.sharepoint.com/sites/10209/Secretariaat/Forms/AllItems.aspx?id=%2Fsites%2F10209%2FSecretariaat%2FWerkplekmassages"">Dat kan via deze link</a>"
    With xOutMail
        .To = "jemail@adres.nl"
        .CC = ""
        .BCC = ""
        .Subject = "Ik heb je opgegeven voor werkplekmassage"
        .HTMLBody = xMailBody
        .Display   [COLOR="#008000"]'or use .Send[/COLOR]
    End With
    
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub
 
Laatst bewerkt:
Maak er eens dit van:
Code:
Private Sub CommandButton4_Click()
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    
    xMailBody = "Check de lijst even om te zien waar je ingedeeld bent." & "<br><a href=""https://solisservices.sharepoint.com/sites/10209/Secretariaat/Forms/AllItems.aspx?id=%2Fsites%2F10209%2FSecretariaat%2FWerkplekmassages"">Dat kan via deze link</a>"
    With xOutMail
        .To = "jemail@adres.nl"
        .CC = ""
        .BCC = ""
        .Subject = "Ik heb je opgegeven voor werkplekmassage"
        .HTMLBody = xMailBody
        .Display   [COLOR="#008000"]'or use .Send[/COLOR]
    End With
    
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

Dit is hem! Helemaal super! Dank je wel Edmoor:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan