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 :

Ouverture classeur (par macro VBA)


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Retraité ingén.automatisme
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité ingén.automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 45
    Points
    45
    Par défaut Ouverture classeur (par macro VBA)
    Papi 83 ans, passionné de VBA (à niveau limité !) je n’arrive pas à m’y reconnaître dans les réponses trouvées sur le Web ☹ à la question ci-dessous.
    Je donne donc mes données en clair (même si moins simple, excuses)

    Dans le classeur
    « C:\Users\Proprietaire\Documents\Finances\Livre.xlsm », feuille « Prest.Santé »
    des cellules contiennent des dates « DateX » au format date.
    Je voudrais y attacher une macro par laquelle un double clic (Worksheet_BeforeDoubleClick) sur une cellule qui contient « DateX » ouvrira le classeur déjà existant :
    C:\Users\Proprietaire\Documents\Santé\Documents SS\DateX.xlsm »
    sans fermer le classeur Livre.xlsm (qui contient la macro).
    Rédaction de la macro ?
    Grand merci au répondeur.

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    DateX c'est pas très explicite !!!! Ce qui est certain, c'est que ton fichier ne peut pas d'appeler 22/08/2020.xlsm.
    Je suppose donc que tu utilises un autre format de date pour le nom du fichier (par exemple 22-08-2020.xlsm).

    Pourquoi VBA quand on peut s'en passer ??? Un simple lien hypertexte suffit :

    Nom : Lien.jpg
Affichages : 195
Taille : 90,1 Ko
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par PICHOUX Voir le message
    Bonjour,

    Une solution possible. Regardez aussi l'événement ClicDroit pour le déclenchement de la macro.

    Dans un module standard :
    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
     
    Option Explicit
     
     
    Public Const NomWbDateX As String = "C:\Users\Proprietaire\Documents\Santé\Documents SS\DateX.xlsm"
    Public WbDateX As Workbook
     
     
    Sub OuvrirLeFichierDateX()
     
       If WbDateX Is Nothing Then
          Workbooks.Open Filename:=NomWbDateX
       End If
     
    End Sub
    Dans le module feuille :

    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
            If Target = "DateX" Then
               OuvrirLeFichierDateX
               Set WbDateX = Workbooks("DateX.xlsm")
               With WbDateX
                    ' .Activate
                    ' Suite du programme
                    ' ....
     
               End With
     
               Set WbDateX = Nothing
     
               Cancel = False
            End If
     
    End Sub

  4. #4
    Membre du Club
    Homme Profil pro
    Retraité ingén.automatisme
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité ingén.automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 45
    Points
    45
    Par défaut Ouverture classeur (par macro VBA)
    Citation Envoyé par Patrice740 Voir le message
    [...]

    J'utilise effectivement le lien hypertexte, et c'est justement pour éviter de créer le lien à chaque nouvelle cellule que je cherche la solution Macro double clic.
    Effectivement le format des fichiers est : aaaa mm jj.xlsm (pour permettre un tri par date avec la forme texte).
    Merci pour votre attention.

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par PICHOUX Voir le message
    J'utilise effectivement le lien hypertexte, et c'est justement pour éviter de créer le lien à chaque nouvelle cellule ....
    Utilises un tableau structuré, le lien se créera tout seul à chaque ajout de ligne : https://fauconnier.developpez.com/tu...ux-structures/
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  6. #6
    Membre du Club
    Homme Profil pro
    Retraité ingén.automatisme
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité ingén.automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Patrice740 Voir le message
    Utilises un tableau structuré, le lien se créera tout seul à chaque ajout de ligne : https://fauconnier.developpez.com/tu...ux-structures/
    Merci, mais pas assez jeune pour ingurgiter cette proposition que j'aurais tellement aimé découvrir il y a 10 ou 20 ans !

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    Salut

    Citation Envoyé par PICHOUX Voir le message
    Merci, mais pas assez jeune pour ingurgiter cette proposition que j'aurais tellement aimé découvrir il y a 10 ou 20 ans !
    C'est l'affaire de 2 clics, puisqu'il suffit de transformer ta plage de données en tableau structuré... La formule peut alors se saisir dans une cellule et se propager sur toute la colonne...

    Merci Patrice (Hello )


    [EDIT]: Sans tableau structuré, ta formule se recopiera automatiquement à partir de la cinquième saisie, si je ne dis pas de bêtises
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre du Club
    Homme Profil pro
    Retraité ingén.automatisme
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité ingén.automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    [...]
    Comme répondu à Patrice, le format des fichiers est : aaaa mm jj.xlsm (pour permettre un tri par date avec la forme texte).
    Mais nouveau pb : les fichiers doivent être en .pdf (aaaa mm jj.pdf), et l’indication du format .pdf ne conditionne pas l'ouverture du fichier avec FaceStone Image. La commande actuelle ouvre le fichier .pdf dans Excel et tu devines la beauté du résultat ! !
    Alors merci pour une réponse ... j'espère assez facile

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    Je ne comprends pas bien le problème sur lequel tu butes.

    • Patrice t'a donné la solution par formule
    • Tu a souhaité que la formule se reporte automatiquement sur les lignes suivantes
    • Patrice t'a donné la solution via les tableaux structurés (que tu sembles avoir rejetée, alors qu'il faut au maximum 4 clics pour la mettre en place)
    • Je t'ai informé que même sans tableau structuré, ta formule allait se propager sur les nouvelles cellules à partir de la cinquième saisie
    • Le lien hypertexte ouvre bien le fichier selon son extension. Si c'est un pdf, c'est l'appli de lecture des pdf qui s'ouvrira



    A ce stade, qu'est-ce qui t'empêche de tester et de valider la solution de la formule de Patrice? Tu veux absolument le faire en VBA? Si oui, pourquoi?


    Voila la formule qui te permet de créer le lien vers le nom du fichier pdf, et la fonction TEXTE te permet de formater la date comme il te convient.

    Nom : 2020-08-23_164707.png
Affichages : 164
Taille : 18,2 Ko


    Pour ce qui est du tableau structuré, toujours sur base de mon exemple, 4 clics suffisent
    • Se mettre dans la plage
    • Cliquer sur l'onglet Insertion du ruban
    • Cliquer sur l'outil Tableau
    • Valider la boite de dialogue, en veillant à ce que la case "mon tableau contient des entêtes" soit cochée. Normalement, la présence de dates dans ta plage fait que cette case est cochée.



    C'est tout. Tu as alors ton tableau, et lorsque tu y ajouteras une ligne, la formule suivra automatiquement. Si tu modifies la formule, elle sera adaptée sur tout le tableau.

    Nom : 2020-08-23_165707.png
Affichages : 150
Taille : 40,5 Ko

    Nom : 2020-08-23_165855.png
Affichages : 151
Taille : 12,7 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre du Club
    Homme Profil pro
    Retraité ingén.automatisme
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité ingén.automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Je ne comprends pas bien le problème sur lequel tu butes.[...]
    Je répète même si passionné, je suis de petit niveau ... et lent !
    Pour le lien, j'explique :
    Pour créer le lien je faisais clic droit sur la cellule à lier, elle-même, puis clic sur "Lien" en bas de la liste, puis je renseignais la page "Insérer un lien hypertexte".
    En faisant ainsi il suffisait de cliquer sur la cellule elle-même pour ouvrir le lien ...
    Cette méthode exigeait une création de lien sur chaque ligne.
    Je n'avais pas pensé à créer le lien sur autre cellule.
    Et en plus cela permet la "structuration" du tableau. Outil que je ne connaissais pas, même si je le pratique à peu près depuis longtemps, en créant des lignes avec cellules destinées aux saisies manuelles vides ou à effacer par la saisie, et des cellules contenant instructions.
    Ce que j'ajoute n'est pas une critique. Le maniaque que je suis voudrait effacer la vue des formules-liens, éventuellement en affichant une petite image "bouton" ou petite zone texte explicative pour autre utilisateur (mon épouse).
    La solution macro par double-clic n'exige pas la colonne "lien", et il suffit d'afficher en titre : "Double clic sur date ouvre le document correspondant.
    De plus je reste intéressé par le pb d'ouverture d'un fichier .pdf depuis une macro vba que je ne sais pas comment résoudre.
    Merci encore et veuillez excuser mes exigences !

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    C'est pas une question de lenteur... J'aurais dû expliquer plus en détails dès ma première réponse

    L'important, c'est que la solution te convienne
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Membre du Club
    Homme Profil pro
    Retraité ingén.automatisme
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité ingén.automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Une solution possible. Regardez aussi l'événement ClicDroit pour le déclenchement de la macro.

    Dans un module standard :
    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
     
    Option Explicit
     
     
    Public Const NomWbDateX As String = "C:\Users\Proprietaire\Documents\Santé\Documents SS\DateX.xlsm"
    Public WbDateX As Workbook
     
     
    Sub OuvrirLeFichierDateX()
     
       If WbDateX Is Nothing Then
          Workbooks.Open Filename:=NomWbDateX
       End If
     
    End Sub
    Dans le module feuille :

    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
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
            If Target = "DateX" Then
               OuvrirLeFichierDateX
               Set WbDateX = Workbooks("DateX.xlsm")
               With WbDateX
                    ' .Activate
                    ' Suite du programme
                    ' ....
     
               End With
     
               Set WbDateX = Nothing
     
               Cancel = False
            End If
     
    End Sub
    Bonjour Eric, je tarde à répondre après avoir passé du temps avec Patrice dont j'ai beaucoup apprécié l'aide qui m'a fait découvrir la fonction "tableau structuré" que je ne connaissais pas. Mais finalement je préfère, pour raisons diverses garder la solution "Macro".
    J'ai testé l'option Explicit, que j'avais essayée mais qui coinçait (Guillemets oubliées dans NomWbDateX ... réparé).
    Nouveau pb : les fichiers à ouvrir ne sont plus en .xlsm mais doivent être en .pdf (exigé par le destinataire).
    Et le test que j'ai fait ouvre le fichier DateX.pdf dans Excel.
    Vous devinez le résultat ! ! !
    Et donc, ma question complémentaire est : Que faire pour qu'il s'ouvre en pdf.
    Merci pour votre réponse que je suppose être simple pour qui est compétent. (Je suis perdu dans les réponses trouvées sur le Web).

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    On ne peut pas ouvrir un fichier Excel "en pdf"... Pour l'ouvrir en pdf, il faut que ce soit un fichier PDF.

    Il faut donc d'abord enregistrer (ou exporter) le fichcier Excel en PDF (ce qui le transformera et le rendra inexploitable en Excel) et on pourra alors l'ouvrir "en pdf"...

    Un peu plus de détails sur les tenants et aboutissants de ton projet nous permettra de t'aider, car pour l'instant, c'est un peu le brouillard, ce que tu souhaites obtenir.

    De quels fichiers disposes-tu au départ? de PDF? de fichiers EXCEL? S'ils sont en Excel, veux-tu les enregistrer en PDF? Si oui, sous quel nom? etc? etc?

    L'informatique, ce n'est pas "je frotte ma lampe d'aladin et hop, j'ai mon résultat"...


    Voilà un code qui crée le lien pdf dans la cellule dans laquelle tu saisis ta date (au sein d'un tableau structuré nommé tableau1 et dans une colonne nommée Date)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Cells.Count = 1 Then
        If Not Intersect(Target, Range("tableau1[Date]")) Is Nothing Then
          Target.Hyperlinks.Delete
          Target.Hyperlinks.Add Target, "file:///C:\data\Temp\" & Format(Target.Value, "yyyymmdd") & ".pdf", , , Format(Target.Value, "dd/mm/yyyy")
        End If
      End If
    End Sub
    Ca, c'est dans le cas où tu disposes déjà du fichier pdf. Si tu n'en disposes pas, c'est un autre sujet
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Membre du Club
    Homme Profil pro
    Retraité ingén.automatisme
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité ingén.automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 45
    Points
    45
    Par défaut
    Encore Merci. Mais le "Très-moyen-moins" que je suis passe beaucoup de temps pour assimiler ce que tu me propose (fais gaffe tu vas avoir des pb avec ma femme !) . Je suis content, j'apprends des méthodes/applications que j'ignorais et qui me passionnent.
    En plus je réalise qu'en alignant à droite la cellule, la date est visible, ce que je désirai.
    Je retiens donc cette solution, mais je vais qd mm me formater à la solution VBA que je sens pouvoir m'être utile dans d'autres cas.
    J'apprécie tout autant ton commentaire final ... lumineux !

  15. #15
    Membre du Club
    Homme Profil pro
    Retraité ingén.automatisme
    Inscrit en
    Janvier 2012
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité ingén.automatisme
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2012
    Messages : 61
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    On ne peut pas ouvrir un fichier Excel "en pdf"... Pour l'ouvrir en pdf, il faut que ce soit un fichier PDF.

    Il faut donc d'abord enregistrer (ou exporter) le fichcier Excel en PDF (ce qui le transformera et le rendra inexploitable en Excel) et on pourra alors l'ouvrir "en pdf"...

    Un peu plus de détails sur les tenants et aboutissants de ton projet nous permettra de t'aider, car pour l'instant, c'est un peu le brouillard, ce que tu souhaites obtenir.

    De quels fichiers disposes-tu au départ? de PDF? de fichiers EXCEL? S'ils sont en Excel, veux-tu les enregistrer en PDF? Si oui, sous quel nom? etc? etc?

    L'informatique, ce n'est pas "je frotte ma lampe d'aladin et hop, j'ai mon résultat"...


    Voilà un code qui crée le lien pdf dans la cellule dans laquelle tu saisis ta date (au sein d'un tableau structuré nommé tableau1 et dans une colonne nommée Date)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Cells.Count = 1 Then
        If Not Intersect(Target, Range("tableau1[Date]")) Is Nothing Then
          Target.Hyperlinks.Delete
          Target.Hyperlinks.Add Target, "file:///C:\data\Temp\" & Format(Target.Value, "yyyymmdd") & ".pdf", , , Format(Target.Value, "dd/mm/yyyy")
        End If
      End If
    End Sub
    Ca, c'est dans le cas où tu disposes déjà du fichier pdf. Si tu n'en disposes pas, c'est un autre sujet
    Bonjour, encore moi (!), et merci pour ton aide que j'ai appliquée.
    Mais il demeure que je voudrais recomposer autrement la gestion de ces fichiers (et aussi d'autres). Pour cela je voudrais bien pouvoir ouvrir un dossier pdf , via VBA, par un bouton ou double-clic sur cellule Excel.
    Je ne comprends pas pourquoi après avoir passé des heures à chercher une réponse sur Google (developper.net inclus bien sûr) je n'ai pas réussi à appliquer les infos que j'y ai trouvées. Il doit y avoir "en moi" qq chose qui va pas !... Ou alors ?...
    Me serait-il possible d'avoir un exemple simple (à recopier) d'une "Sub" Vba (dans fichier Excel) qui ouvrira le fichier : "C:\Users\Proprietaire\Documents\monfichier.pdf"
    Bien chaleureusement pour ton aide (je devine combien je peux être "pesant" !)

  16. #16
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    Voici une fonction générique qui ouvre à peu près n'importe quel fichier, du moment que son extension soit associée à un programme par défaut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function OpenAnyfile(ByVal filename As String) As Long
      If Dir(filename) <> vbNullString Then
        Shell "explorer.exe """ & filename & """", 1
      Else
        OpenAnyfile = 1 ' Le fichier n'existe pas"
      End If
    End Function

    Elle peut s'utiliser par exemple comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
      Dim Result As Long
     
      Result = OpenAnyfile("c:\data\temp\test.adf")
      If Result = 1 Then MsgBox "Le fichier n'existe pas", vbExclamation
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [XL-2016] Copie du classeur courant par macro VBA
    Par retraite83 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/11/2017, 16h31
  2. instructions pour accéder à une feuille d'un classeur par macro
    Par rogerone dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/02/2010, 12h30
  3. Réponses: 1
    Dernier message: 27/03/2008, 18h42
  4. [BO 6.5][VBA] Ouverture rapport avec macro VBA
    Par flyerman_2 dans le forum SDK
    Réponses: 2
    Dernier message: 27/03/2008, 17h27
  5. Modifier la structure d'une table par macro / vba
    Par zermatt dans le forum Access
    Réponses: 8
    Dernier message: 21/01/2007, 15h32

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