IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Créer un lien hypertexte après voir enregistrer sous PDF


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Par défaut Créer un lien hypertexte après voir enregistrer sous PDF
    Bonjour,

    je suis depuis quelques jours sur une macro que je ne parviens pas à faire fonctionner malgré de nombreux essais suite à mes recherches sur la toile. Je suis relativement novice en VBA et mon problème va peut être vous sembler idiot...

    Pour le contexte, tout d'abord mon fichier devra être utilisé par différentes personnes au sein de mon entreprise, d'où ma mission de créer un outil "simple d'utilisation"..
    Au départ, j'ai créer un tableau en feuille1 de mon classeur (tableau que chacun devra remplir)
    Ensuite, au travers d'une macro, un rapport concernant la dernière ligne remplie est automatiquement créé par click sur une commandbutton vers la feuille2 du classeur puis par une deuxième commandbutton, une seconde macro me créé: premièrement une sauvegarde sur le réseau de mon entreprise, du fichier excel puis me génère un PDF au travers de PDFcreator. Une boite de dialogue (créée par un userform) s'ouvre alors, permettant à l'utilisateur de choisir d'ouvrir ou non ce fichier PDF.

    mon soucis est que je ne parviens pas à lancer l'ouverture du fichier en cas de click sur "oui" dans cette boite de dialogue.

    J'ai essayé différentes méthodes sans succès..

    Je suis sur une solution de créer un lien hypertexte dans ma feuille mais je ne parviens pas ensuite à l'ouvrir: message d'erreur "impossible d'ouvrir le fichier spécifié"

    Tout d'abord, pour résoudre le fait de créer à chaque fois de nouveau rapport PDF je suis partis sur le fait de trouver le dernier fichier créé:

    Voici le code que j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Function FindLastFile(Path As String)
     
       Dim fName As String
       Dim fDate As Date
     
        Dim fso
        Set fso = CreateObject("Scripting.FileSystemObject")
     
        Dim folder
        Set folder = fso.GetFolder(Path)
     
        Dim Files
        Set Files = folder.Files
     
        Dim File
        For Each File In Files
            If File.DateCreated > fDate Then
                fDate = File.DateCreated
                fName = File.Name
            End If
            Debug.Print File.Name, File.DateCreated, "=>", fName, fDate
        Next
     
        Set Files = Nothing
        Set folder = Nothing
        Set fso = Nothing
     
        FindLastFile = fName
     
    End Function
     
    'Ensuite, je l'utilise dans ma userform avec le code suivant:
     
    Private Sub CommandButton1_Click()
    ' Créer lien hypertexte du rapport
    Dim chemin As String
     
    Range("z1").Select
     
    chemin = "S:\Chemin\Dossier1\Dossier2\Rapports générés"
     
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=FindLastFile(chemin)
     
       Unload Me
    End Sub
    N'ayant pas de code utilisable pour le moment, je ne suis pas parvenu à tester de code permettant ensuite l'ouverture de ce lien nouvellement créé

    En espérant avoir été claire dans mes explications, quelqu'un aurait-il une solution s'il vous plaîiiiiiiiiiiiit?????

    Merki!!

  2. #2
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    N'oublie pas d'utiliser les balises CODE (en cliquant sur le # dans l'éditeur de message) quand tu écris du code.

    Et regarde du coté de la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.FollowHyperlink

  3. #3
    Membre averti
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Par défaut
    Bonjour,

    désolé pour les balises de code, j'ai été un peu vite dans ma rédaction...

    Sinon, je ne parviens pas à utiliser"ThisWorkbook.FollowHyperlink" dans mon cas. j'ai essayé plusieurs fois en adressant la cellule, le texte dans la cellule ou le FindLastFile(chemin) sans succès... (Le problème étant que le nom de fichier va changer à chaque fois et je ne peux donc pas donner une adresse absolue..)

    Je ne sais pas exactement où positionner cette fonction, ni comment l'adressée ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub CommandButton1_Click()
    ' Créer lien hypertexte du rapport
    Dim chemin As String
    Dim fname As String
     
    Range("z1").Select
     
    chemin = "S:\Chemin\dossier1\dossier2\rapports générés"
    fname = FindLastFile(chemin)
     
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=fname
     
    ThisWorkbook.FollowHyperlink (range("z1").text)
    Je ne sais pas si ça à un rapport avec le fait que ça ne fonctionne pas mais le lien hypertexte qu'Excel me créé suivant le code écrit dans mon précédent post, tronque une partie du chemin:
    Au lieu d'avoir quelque chose du type "S:\Chemin\dossier1\dossier2\rapports générés", il m'indique "S:\Chemin\dossier1\rapports générés" avec un message d'erreur qui apparaît au click :"Impossible d'ouvrir le fichier spécifié". Pourtant dans mon code, le chemin ne contient pas d'erreur et il me note quand même le bon nom de fichier... (Quand je créé le lien hypertexte sans passage par le VBA, je n'ai aucun soucis d'ouverture, avec le chemin indiqué complet)

    Merci d'avance!!

  4. #4
    Membre averti
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Par défaut
    Merci pour ta réponse. Effectivement si je pouvais trouver une solution sans passer par un lien hypertexte ce serait l'idéal.

    Malheureusement je n'arrive pas à utiliser ta proposition..

    Tout d'abord, quelque soit l'endroit où je mets l'option explicit, j'ai une "erreur de compilation : Des constantes, chaines de longueur fixe, tableaux, types prédéfinis par l'utilisateur et Instruction Declare ne sont pas autorisés comme membres Public de modules d'objet " et je ne vois pas trop quelle référence il pourrait manquée (si c'est bien ça le problème...)

    Sinon j'ai peut être "trouvé" une autre solution mais qui ne fonctionne pas tout à fait comme je le voudrait...
    Elle me trouve bien le dernier fichier créé de mon répertoire et m'ouvre bien le bon fichier pdf...mais avec EXCEEEEEELLL.. et du coup j'ai des hiéroglyphes qui s'affichent!!!

    Je ne sais pas comment appeler la bonne application d'ouverture de mon fichier (j'ai PDFcreator et Acrobat reader), et si pour l'appeler, il me faut spécifier un chemin complet, est ce qu'il existe un "tour de passe-passe" pour qu'excel le retrouve tout seul (normalement je ne serais pas la seule de mon service à utiliser le fichier et j'ai bien peur qu'on n'est pas tous la même version, au même endroit....)

    Voici le code que j'ai trouvé sur la toile pour aller me chercher le bon fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Function FindLastFile(Path As String)
     
       Dim fname As String
       Dim fDate As Date
     
        Dim fso
        Set fso = CreateObject("Scripting.FileSystemObject")
     
        Dim folder
        Set folder = fso.GetFolder(Path)
     
        Dim Files
        Set Files = folder.Files
     
        Dim File
        For Each File In Files
            If File.DateCreated > fDate Then
                fDate = File.DateCreated
                fname = File.Name
            End If
            Debug.Print File.Name, File.DateCreated, "=>", fname, fDate
        Next
     
        Set Files = Nothing
        Set folder = Nothing
        Set fso = Nothing
     
        FindLastFile = fname
     
    Workbooks.Open Path & "\" & fname
     
     
     
    End Function
    Que j'appelle à l'aide de ma userform:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub CommandButton1_Click()
    ' "devrait ouvrir" le fichier pdf
    Call FindLastFile("S:\chemin1\chemin2\Rapports générés\")
       Unload Me
    End Sub
     
    Private Sub CommandButton2_Click()
    ' ferme la boite de dialogue
        Unload Me
    End Sub
    Et merci encore du coup de main!!!

  5. #5
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,

    La seule méthode que je connaisse pour ouvir le PDF hors Excel est celle que j'ai indiqué.

    Je pense que ton message d'erreur vient du fait que tu aurais mis la procédure dans un module Private.

    Reprend les modules que j'ai collé et, dans ton module Private renvoi vers la macro ouvrirPDF pour tester.

    A+

  6. #6
    Membre averti
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Par défaut
    Merci merci beaucoup!!!

    Finalement j'ai réussi à l'adapter à mon cas avec un petit ajout de message d'erreur en cas de fichier ou chemin non trouvé!!!!! Et tout marche très bien.

    Bonne année et bonne santé!!!

  7. #7
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    J'arrive un peu après la bataille (il faut bien prendre de vacances de temps en temps), mais pour une prochaine fois, voici comment tu peux utiliser FollowHyperlink (Tu peux bien sûr le faire depuis ton userForm, ça n'a en fait rien à voir avec les hyperlink de cellules) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.FollowHyperlink FindLastFile("S:\Chemin\dossier1\dossier2\rapports générés")
    (Si bien sûr FindLastFile te renvoie le chemin complet, je n'ai pas regardé en détail).

  8. #8
    Membre averti
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Par défaut
    Merci pour l'info.. Je garde ça de côté au cas où!!effectivement ça pourra peut être m'être utile une prochaine fois!!

    Et meilleurs voeux pour cette année!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Créer un lien hypertexte après voir enregistrer vers une feuille dans un classeur
    Par maxval18 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/02/2012, 14h30
  2. créer un lien hypertexte sous une image de fond
    Par Ouija33 dans le forum Dreamweaver
    Réponses: 3
    Dernier message: 24/10/2007, 17h34
  3. Créer un lien hypertext vers le lecteur CD
    Par SilverHawk35000 dans le forum VBA Word
    Réponses: 1
    Dernier message: 13/07/2007, 14h58
  4. [FLASH 5] Comment créer un lien hypertexte
    Par ajit dans le forum Flash
    Réponses: 4
    Dernier message: 30/03/2006, 13h26
  5. Comment créer un lien hypertexte avec une liaison OLE Excel ?
    Par vieuxsinge dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 08/12/2005, 18h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo