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 :

Lien hypertexte sur nom de fichier incomplet [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut Lien hypertexte sur nom de fichier incomplet
    Salut à tous,

    je parcours ce forum depuis un moment maintenant, trouvant toujours plus ou moins les reponses à mes besoins, seulement là mes connaissances en VBA sont trop limitées, j'aurais besoin de conseille, je m'explique.

    Dans excel j'ai des liens hypertexte qui pointent vers des fichiers PDF. ces liens hypertexte sont simples car j'ai simplifié le nom du fichier au prealable avec des batchs.

    DONC, 1ERE QUESTION :
    mais je voudrais que ce soit excel qui fasse directement le boulot.
    par exemple j'ai un fichier qui s'appelle 2013-108-renault.pdf
    dans excel je n'utilise que 2013-108 dans une cellule, je transforme ce 2013-108 en lien hypertexte et je voudrait qu'il retrouve le fichier 2013-108-renault.pdf avec une astuce du style 2013-108???????.pdf

    j'ai besoin de ça car j'ai tout un tas de fichiers en 2013-205 ou 2013-458 et je voudrais eviter de renommer les pdf, ça evite de faire changer les habitutes à ceux qui travaillent avec moi, mais je voudrais leur simplifier la vie

    un peu comme avec les batchs justement car DOS sait retrouver des fichiers avec un seulement un "debut"
    je ne sais pas si je suis clair ....

    2EME QUESTION :
    Comment indiquer à excel qu'il doit chercher dans des sous-dossiers ?

    merci d'avance en tout cas !

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Salut,
    ...du style 2013-108???????.pdf
    essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "2013-108" & "*" & ".pdf"

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    merci pour la reponse

    j'ai essayé des formules du genre hier mais ça n'a pas fonctionné, idem ce matin, alors peut etre que je m'y prends mal

    =LIEN_HYPERTEXTE("T:\ACHAT\COMMUN\COMMANDES ACHATS en pdf\2013\" &H7240& "*" & ".pdf";"2013-108")

    H7240=2013-108

  4. #4
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    J'ai essayé de mon coté avec un autre Pdf, il reconnais le fichier mais j'ai ensuite cette réponse (voir image)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    j'ai bien ce même message ...

    et je ne sais pas comment faire .... pour qu'il l'ouvre malgré tout

  6. #6
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Par contre, si tu passes par la démarche "Excel" => click droit sur cellule => Lien Hypertexte => à gauche de la fenêtre, cliquer sur "Fichier ou page Web existant(e)" et à droite choisir le fichier, ensuite tu peux peut-être réécrire dans ta cellule "T:\ACHAT\COMMUN\COMMANDES ACHATS en pdf\2013\" &H7240& "*" & ".pdf", je n'ai pas vérifié, alors...

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    j'ai fait quelques essais mais sans resultats ...

    est-ce que l'un d'entre vous pourrait me dire si c'est possible simplement ou si il faut passer par du VBA ?

    merci

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    salut à tous,

    personne pour m'aider ?
    vraiment ?

    bon .... si dans un malentendu un connaisseur passe par ici je le remercie par avance !

    merci

  9. #9
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    un lien hypertexte ne peut être effectué que sur une référence de fichier complète ! …

    Donc si tu tiens à compliquer, tu peux chercher si un fichier existe en VBA à partir d'une séquence …

    Voir la Manipulation des fichiers en VBA

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  10. #10
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut en utilisant l'évenement suivant tu interceptes le clic et tu ajoutes ce qui v bien pour trouver ton fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
     
    End Sub

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    salut et merci pour vos reponses !!

    quant tu dis "j'ajoute ce qui va bien"

    euh ... en VBA ?

    je vais gratter un peu autours de ce que vous m'avez donné

    je connais trop peu le VBA mais je vais regarder

    il faudrait que je trouve un truc pour "dire"

    si j'appui sur la touche ctrl (par exemple) et que je clic dans une cellule
    eh bien il faut prendre la valeur de cette cellule, lui ajouter *.pdf et aller chercher dans un dossier en particulier

    ça va etre chaud, surtout qu'il faudrait des conditions, suivant les colonnes ....

    ouah .... mal de crane en perspective

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    Salut à tous,

    j'ai beaucoup appris sur le VBA ces dernieres heures (normal quand on part de rien) et je pense avoir trouvé comment faire pour mon probleme

    par contre j'ai besoin d'aide sur un point, qui est l’implémentation de variable dans la fonction DIR()

    en fait je récupère une variable qui est le debut du nom de mon fichier
    je recuperer une autre variable qui est le chemin d'acces
    et je voudrait coller tout ça dans dir() mais ça ne me renvoi rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = dir(var1 & var2 & "*.*")
    pourquoaaaaaaa

    EDIT ah si ça marche .... bah ?
    bon, je termine mon truc et je vous le post

    ça fonctionne si je ne met pas de variable, il me retrouve bien un fichier commençant par 2013-108
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat = dir("c:\test\2013-108"&"*.*")
    comment je peux faire pour mettre des variables dans DIR ?

    quelqu'un sait ?

    merci

  13. #13
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    salut,
    sans doute parce que ta combinaison de variable ne renvoi pas la même chose, il manque sans doute un \


    et voici un extrait de l'aide pour gérer les RESULATS MULTIPLES

    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
    ' Affiche les noms dans C:\ représentant des dossiers.
    MyPath = "c:\"    ' Définit le chemin d'accès.
    MyName = Dir(MyPath, vbDirectory)    ' Extrait la première entrée.
    Do While MyName <> ""    ' Commence la boucle.
        ' Ignore le dossier courant et le dossier
        ' contenant le dossier courant.
        If MyName <> "." And MyName <> ".." Then
            ' Utilise une comparaison au niveau du bit pour
            ' vérifier que MyName est un dossier.
            If (GetAttr(MyPath & MyName) _
                And vbDirectory) = vbDirectory Then
                Debug.Print MyName    ' Affiche l'entrée uniquement si elle
            End If    ' représente un dossier.
        End If
        MyName = Dir    ' Extrait l'entrée suivante.
    Loop
    FSO te rendra plus de services :voir le lien de Marc

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    assez content mais humble car ce que j'ai fait est tres basique par rapport à ce que j'ai pu voir
    avant hier je ne savais pas ce qu'etais le VBA mais internet regorgeant d'explication meilleurs les unes que les autres j'ai pu faire mon petit code

    il y a du menage à faire, toutes les variables ne sont pas utilisées
    certaines ont servies de test

    pour expliquer, je suis dans une société, je monte des moteurs, j'ai des plans et d'autres documents, beaucoup de cases, beaucoup de lignes, beaucoup de refs

    en appuyant sur la touche ² ça ouvre mes fichiers pdf.
    je regarde si la chaine commence par "2013", ça execute un chemin de recherche, sinon "2012", et si aucun des 2 ça va chercher dans un 3eme repertoire.

    ça trouve tout, c'est genial

    me reste à voir comment chercher dans des sous-dossiers ET comment mettre un message "fichier introuvable"
    il faut certainement imbriquer des choses entre elles ....

    le code peut forcement etre simplifié, c'est mon premier indulgence

    à coté de ça j'ai fait une execution de macro automatique pour affecter la touche ² à la macro ci-dessous

    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
    Sub test()
     
     
    Dim Chemin1 As String
    Dim Chemin2 As String
    Dim Chemin3 As String
    Dim Chem3 As String
    Dim Chem4 As String
    Dim Chem5 As String
    Dim lien As String
    Dim lien1 As String
    Dim z As String
    Dim x As String
    Dim y As String
    Dim iii As String
     
        y = ActiveCell.Cells
          x = Left(y, 4)
     
    If x = "2013" Then
                Chemin2 = "T:\ACHAT\COMMUN\COMMANDES ACHATS en pdf\2013\"
                Chem4 = Dir(Chemin2 & y & "*.*")
                Call Shell("rundll32.exe url.dll,FileProtocolHandler " & (Chemin2 & Chem4), vbMaximizedFocus)
     
                If x = "2012" Then
                Chemin3 = "T:\ACHAT\COMMUN\COMMANDES ACHATS en pdf\2012\"
                Chem5 = Dir(Chemin3 & y & "*.*")
                Call Shell("rundll32.exe url.dll,FileProtocolHandler " & (Chemin3 & Chem5), vbMaximizedFocus)
     
                Else
        End If
        Else
        Chemin1 = "T:\ATELIER\test plans\"
    lien = ActiveCell.Cells
    z = Left(lien, 6) & Right(lien, 2)
    Chem3 = Dir(Chemin1 & z & "*.*")
    Call Shell("rundll32.exe url.dll,FileProtocolHandler " & (Chemin1 & Chem3), vbMaximizedFocus)
     
       End If
     
    End Sub

  15. #15
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut,
    Déjà quand tu postes du code il y a un icone # qui va t'insérer des balises code tu écris entre elles !

    me reste à voir comment chercher dans des sous-dossiers
    Si tu as besoin d'aide il faut être très précis, par exemple combien de niveaux de sous-dossiers veux tu explorer ?
    le premier ou tous ?
    et est ce que tu connais le nom des sous dossiers ?


    ET comment mettre un message "fichier introuvable"
    il faut certainement imbriquer des choses entre elles ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if resultat ="" then 
    msgbox "pas trouvé"
    exit sub
    end if

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    salut et encore merci

    pas de soucis pour la balise, j'y penserais

    pour les sous dossiers le nombre est evolutif et les noms aussi
    c'est pour ça que j'ai fait une macro en .bat qui copie tout dans un seul dossier.

    tout simplement pour le fichier non trouvé ?
    remarque ça parait logique, je test de suite

    merci

  17. #17
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    tu devrais vraiment lire le lien de Marc ici

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    c'est bien prévu, j'ai même commencé, mais étant tres debutant ça m'a un peu perdu ET réussir avec des choses simples permet de comprendre le principe

    je garde ce lien et je vais le lire

    car là je n'arrive plus à imbriquer mes IF avec une condition de variable vide

    pfffffffff

    il me faudrait des OR et ANDIF pour bien faire

    ou des GOTO

  19. #19
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    C'est pas un manuel DE TV ou de lave linge que je te propose de lire, mais l'endroit où se trouve la solution à ton problème !!!

    ca c'est pour chercher dans les fichiers comme la fonction de recherche de windows. (à voir si c'est compatible avec ta version de office)

    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
    Dim oFS As Office.FileSearch
    Dim i As Integer
    Set oFS = Application.FileSearch
     
    With oFS
        .NewSearch
        .FileType = msoFileTypeAllFiles
        .FileName = "monfichier.txt"
        .LookIn = "D:\Essai"
     
        .Execute
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    End With
    sinon tu peux utiliser FSO (tiens encore ?) voir dans l'article plus haut

  20. #20
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    ah pardon, je ne l'avais pas compris comme ça

    je regarde

    et je n'arrive meme pas à integrer le msgbox, ça ne fonctionne pas ....

    j'ai 3 variables à verifier, ce n'est pas compliqué pourtant, mais ça ne marche pas

    je continue de gratter

    j'ai ré-ordonné mon code, ça va mieux et les messages d'erreur fonctionnent

    pour la recherche de sous dossiers je vais voir car c'est pour ma société et il faut activer Microsoft Scripting Runtime

    vu le nombre de machines je vais voir comment je procede

    merci !!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/01/2015, 09h54
  2. Lien hypertexte sur excel pointant vers fichier .odt (openoffice)
    Par François Tariel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2009, 11h13
  3. Excel : lien hypertexte vers un autre fichier avec nom page
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 09h33
  4. Un lien hypertexte sur une étiquette ?
    Par beegees dans le forum Access
    Réponses: 6
    Dernier message: 04/11/2005, 11h53
  5. [Debutant]Nom de fichiers incomplets
    Par Drizzt [Drone38] dans le forum MFC
    Réponses: 3
    Dernier message: 04/06/2004, 16h33

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