Tester l'éxistence d'un fichier sur mon PC

Bonjour,

J'ai un tableau Excel qui contient un lien hypertexte dans chaque ligne ouvrant un fichier PDF sur mon PC du même nom que mes colonnes "A1"; "A2" etc.

La formule est sous cette forme :

=LIEN_HYPERTEXTE(CONCATENER("\\chemin d'accès\";A3;".PDF");A3)

Mon problème, c'est que parmi ces lignes, certaines n'ont pas de fichiers PDF associés, je souhaiterais donc trouver un moyen pour que celles-ci affichent "Fichier innexistant" et que les autres affichent le lien hypertexte normal.

J'espère m'être fait comprendre, je ne sais pas vraiment comment expliquer.

Merci.

Bonjour

Le nom de tes fichiers il arrive comment ?

C'est peut-être à ce moment là de tester si le fichier existe : Macro

Salut,

Comment ça le nom arrive comment ?

Mes fichiers se nomment de 39 à 15000, mais il y en manque quelques uns, je souhaiterais donc repérer ceux présents et ceux inexistants.

Peux tu m'expliquer la marche à suivre pour faire une macro, s'il te plait ?

Merci pour ta réponse.

Bonjour

Je dois m'absenter

Mais voici une macro simple

Les noms des fichiers en colonne A

Tu ouvres l'éditeur VBA par Alt + F11

Dans le menu "Insertion" ---> Module

Dans la fenêtre qui s'ouvre copies la macro suivante

Option Explicit

Sub Verif()
Dim J As Long
Dim Chemin As String

  Chemin = "\\chemin d'accès\"
  For J = 1 To Range("A" & Rows.Count).End(xlUp).Row
    If Dir(Chemin & Range("A" & J) & ".pdf") = "" Then Range("B" & J) = "Inexistant"
  Next J

End Sub

Ensuite places le curseur sur la ligne du titre de la macro -Sub Verif() )et appuies sur F5

Merci beaucoup, ça m'a bien aidé. Le seul petit problème qui me reste c'est que le "Inexistant" s'affiche également dans la première case de la colonne, peut-on modifier ça dans la macro ?

Pour le test j'ai utilisé des fichiers JPG pour que tu puisses tester de ton coté si tu as besoin. Les 48 et 79 sont censés être inexistants.

Bonsoir

Ton fichier ou je ne sais quoi impossible de le técharger

Il demande d'installer Apache .....

Mais peut-être

Option Explicit

Sub Verif()
Dim J As Long
Dim Chemin As String

  Chemin = "\\chemin d'accès\"
  For J = 1 To Range("A" & Rows.Count).End(xlUp).Row
    If  Range("A" & J) <> "" Then
      If Dir(Chemin & Range("A" & J) & ".pdf") = "" Then Range("B" & J) = "Inexistant"
    End If
  Next J

End Sub

Ah, voilà c'est fait, je l'ai mis en fichier joint.

J'ai essayé avec ton autre macro, mais la première case de la colonne se renomme quand même en "inexistant".

75test.xlsm (17.19 Ko)

Bonsoir

Ben oui le premier nom commence à la ligne 3

Modifies la macro

Tu peux laisser le test sur la cellule vide

Option Explicit

Sub Verif()
Dim J As Long
Dim Chemin As String

  Chemin = "C:\Users\Marius\Desktop\Marius\Nouveau dossier\"
  For J = 3 To Range("A" & Rows.Count).End(xlUp).Row
    If Range("A" & J) <> "" Then
      If Dir(Chemin & Range("A" & J) & ".JPG") = "" Then Range("F" & J) = "Inexistant"
    End If
  Next J

End Sub

Ça fonctionne nickel !

Merci pour ton aide et pour ta patience, je ne m'y connais pas vraiment dans Excel alors tu m'as bien aidé sur ce coup là.

Bonne soirée.

Re-bonjour, c'est encore moi. ^^

Avec l'aide de Banzai je pensait avoir résolu mon problème, mais il s'est avéré que ce n'est pas tout à fait le cas.

Quand j'exécute la macro, elle cherche bien les fichiers dans mon ordi et remplace bien par "Inexistant" le soucis est que quand je rajoute le fichier dans le chemin d'accès et que je désire mettre à jour mon tableur Excel, même si le fichier est cette fois-ci disponible, le "Inexistant" ne se change pas en lien Hypertexte.

Un comme celui-ci avec le nom du PDF qui change suivant la ligne (ici A307) :

=LIEN_HYPERTEXTE(CONCATENER("\\srvmeca\data\Production\Matières\CCPU MATIERE\CCPU MATIERE\";A307;".PDF");A307)

En gros, la macro marche que dans un sens, et je ne m'y connais pas assez pour arranger ça malgré mes essais.

Il faudrait qu'elle cherche dans l'ordi mais qu'elle ne remplace pas seulement les lignes sans fichiers du même nom par "Inexistant" mais que ci possible elle remplace ceux ayant un fichier correspondant par le lien hypertexte, permettant d'ouvrir ce dit fichier.

Merci d'avance, ci besoin je mettrais un exemple de mon tableur en pièce jointe.

Bonjour

Au début de la macro effaces la colonne F

Option Explicit

Sub Verif()
Dim J As Long
Dim Chemin As String

  Chemin = "C:\Users\Marius\Desktop\Marius\Nouveau dossier\"
  Range("F3:F" & Range("A" & Rows.Count).End(xlUp).Row).Clearcontents
  For J = 3 To Range("A" & Rows.Count).End(xlUp).Row
    If Range("A" & J) <> "" Then
      If Dir(Chemin & Range("A" & J) & ".JPG") = "" Then Range("F" & J) = "Inexistant"
    End If
  Next J

End Sub

Merci pour ta réponse.

J'avais eu cette idée mais une fois la colonne effacée, seuls les "Inexistants" apparaissent après avoir exécuté la macro. Les autres cases restent vides. C'est là que j'aimerais trouver une solution pour que le lien hypertexte s'écrivent dans les cases vides (car si les cases sont vides, c'est qu'elles ont bien un fichier portant le même nom que leur ligne dans la colonne A.)

Mais sinon, il n'y a pas moyen de décomposer la macro en deux ? Par exemple faire en sorte qu'elle remplisse dans un premier temps toute la colonne F avec les liens hypertexte (y compris celles avec un fichier inexistant) et ensuite qu'elle fasse ce qu'elle fait actuellement ?

Bonjour

A tester

Option Explicit

Sub Verif()
Dim J As Long
Dim Chemin As String

  Chemin = "C:\Users\Marius\Desktop\Marius\Nouveau dossier\"
  Range("F3:F" & Range("A" & Rows.Count).End(xlUp).Row).ClearContents
  For J = 3 To Range("A" & Rows.Count).End(xlUp).Row
    If Range("A" & J) <> "" Then
      If Dir(Chemin & Range("A" & J) & ".JPG") = "" Then
        Range("F" & J) = "Inexistant"
      Else
        Range("F" & J).Formula = _
              "=HYPERLINK(""" & Chemin & Range("A" & J) & ".jpg" & """," & Range("A" & J) & ")"
      End If
    End If
  Next J

End Sub

Ça a l'air de fonctionner parfaitement.

Encore une fois merci ! En fait, tu as rajouter un "Sinon" pour lui faire mettre le lien ?

Bonjour,

Ce post est très intéressant, et je m'en suis fortement inspiré pour mon fichier.

J'ai néanmoins une question relative au lien hypertexte.

Actuellement, la ligne ci-dessous m'affiche le chemin complet en incluant le nom du fichier trouvé.

Range("F" & J).Formula = _

"=HYPERLINK(""" & Chemin & Range("A" & J) & ".docx" & """)"

J'aimerais que le lien affiché pointe vers ce document, mais également qu'il n'affiche que son nom au lieu du chemin complet.

Merci à tous pour votre aide

Bonne journée,

Emoelha

Banzai64 a écrit :

Bonjour

A tester

Option Explicit

Sub Verif()
Dim J As Long
Dim Chemin As String

  Chemin = "C:\Users\Marius\Desktop\Marius\Nouveau dossier\"
  Range("F3:F" & Range("A" & Rows.Count).End(xlUp).Row).ClearContents
  For J = 3 To Range("A" & Rows.Count).End(xlUp).Row
    If Range("A" & J) <> "" Then
      If Dir(Chemin & Range("A" & J) & ".JPG") = "" Then
        Range("F" & J) = "Inexistant"
      Else
        Range("F" & J).Formula = _
              "=HYPERLINK(""" & Chemin & Range("A" & J) & ".jpg" & """," & Range("A" & J) & ")"
      End If
    End If
  Next J

End Sub
Rechercher des sujets similaires à "tester existence fichier mon"