Erstellen eines Hyperlinks am Ende des Exportmakrovorgangs

Hallo

Ist es möglich, die Adresse des Exportverzeichnisses als Hyperlink in einem Userform eines VBA-Makros zu haben?

Ich möchte mein PDF DXF STEP ZIP Exportmakro verwenden, ... und dass ich am Ende des Vorgangs zusätzlich zu der Meldung "Vorgang erfolgreich abgeschlossen" entweder einen Hypertext-Link zu diesem Verzeichnis oder eine Schaltfläche haben möchte, um darauf zuzugreifen.

Das Nonplusultra wäre sogar, eine Schaltfläche "Per E-Mail senden" zu haben, die eine neue Nachricht mit einem vordefinierten Betreff und Inhalt öffnet und das exportierte Dokument daran anhängt. Es ist für meine Anfragen, die ziemlich oft auftauchen. Danke für Ihre Hilfe.

Dies kann Ihnen einen Hinweis geben, indem Sie den Internet Explorer durch den Windows Explorer ersetzen:

https://forum.solidworks.com/thread/207477

 

Ich habe es geschafft.

Am Ende habe ich ein UserForm erstellt und das Makro ersetzt ein Textfeld durch den Dateinamen oder die Verzeichnisadresse. Ich habe die _Click Einstellungen des Benutzerformulars verwendet, um im Hyperlink-Stil zu öffnen (ich habe eine Änderung in der Mausformatierung durch den "Haupt"-Stil vorgenommen), wenn ich mit der Maus über das Textfeld fahre, und ich habe eine Schaltfläche eingefügt, um auf das Verzeichnis zuzugreifen: 

Private Sub LabelFileExport_Click()
On Error GoTo OuvertureFichierErreur
   Dim MonApplication As Object
   Dim MonFichier As String
   Set MonApplication = CreateObject("Shell.Application")
   
   MonFichier = vDestinationPath & "\" & sRefName & ".zip"
   MonApplication.Open (MonFichier)
   
   Set MonApplication = Nothing
Exit Sub

OuvertureFichierErreur:
   Set MonApplication = Nothing
    MsgBox "Erreur lors de l'ouverture de fichier..."

End Sub

Private Sub CommandButtonOpenPath_Click()
Shell Environ("WINDIR") & "\explorer.exe " & vDestinationPath, vbNormalFocus
End Sub

 

Für das Versenden einer E-Mail mit dem Anhang habe ich in mehreren Foren eine Antwort in Teilen gefunden und sie sieht so aus:

Private Sub CommandButtonSendMail_Click()
On Error GoTo EnvoyerEmailErreur
'définition des variables
Dim oOutlook As Outlook.Application
Dim oMailItem As Outlook.MailItem
Dim Body As Variant
Dim sTmp As String, SigString As String
Dim Signature As String
Dim strbody As String

PieceJointe = vDestinationPath & "\" & sRefName & ".zip"

    'préparer Outlook
    PreparerOutlook oOutlook
    Set oMailItem = oOutlook.CreateItem(0)
    
    strbody = "<font size=3>" _
            & "Bonjour,<br>" _
            & "Pouvez-vous s'il vous plaît me faire votre meilleure offre de prix et délais pour la fourniture de l'élément en plan ci-joint.<br>" _
            & "Cordialement,"
    
    'création de l'email
    With oMailItem
        .Display   '<- affiche l'email (si vous ne voulez pas l'afficher, mettez cette ligne en commentaire)
        .Subject = "Demande de prix - " & sRefName
        .HTMLBody = strbody & .HTMLBody
        If PieceJointe <> "" Then .Attachments.Add PieceJointe
       '.Save      '<- sauvegarde l'email avant l'envoi (pour ne pas le sauvegarder, mettez cette ligne en commentaire)
       '.Send      '<- envoie l'email (si vous voulez seulement préparer l'email et l'envoyer manuellement, mettez cette ligne en commentaire)
    End With
    
   'nettoyage...
    If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing
    If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing

   Exit Sub

EnvoyerEmailErreur:
    If (Not (oMailItem Is Nothing)) Then Set oMailItem = Nothing
    If (Not (oOutlook Is Nothing)) Then Set oOutlook = Nothing
    MsgBox "Le mail n'a pas pu être envoyé...", vbCritical, "Erreur"
End Sub

Private Sub PreparerOutlook(ByRef oOutlook As Object)
'Ce code vérifie si Outlook est prêt à envoyer des emails... Et s'il ne l'est pas, il le prépare.
On Error Resume Next
    'vérification si Outlook est ouvert
    Set oOutlook = GetObject(, "Outlook.Application")
    If (Err.Number <> 0) Then 'si Outlook n'est pas ouvert, une instance est ouverte
        Err.Clear
        Set oOutlook = CreateObject("Outlook.Application")
        
        If (Err.Number <> 0) Then
            MsgBox "Une erreur est survenue lors de l'ouverture de Outlook..."
            Exit Sub
        Else
        End If
    Else    'si Outlook est ouvert, l'instance existante est utilisée
    End If

End Sub