Ouvrir un pdf stocké sur serveur, suivant maître mot inscrit dans cellule

Bonjour le forum,

J'ai trouvé un début de réponse à ma problématique, j’ai essayé de comprendre le code, mais il est très nettement au-dessus de mes compétences…

https://forum.excel-pratique.com/excel/ouvrir-pdf-en-fonction-d-un-mot-154207

Le but recherché est que lorsque je me positionne sur une des cellules de la colonne Affichage rapport Pdf de "P3 à P dernière ligne du tableau" qui vont de quelques dizaines de lignes à plusieurs centaines et que j’inscrive la valeur 01, 02, 1, 2, 3, 4, etc. jusqu’à 12 (suivant les onglets, pour des contrôles qui peuvent être annuel, semestriel, trimestriel, mensuel).

La valeur de la colonne (N / Plaque identification) de la même ligne devenant le maître mot dans la recherche et l’ouverture du rapport .pdf correspondant.

Le fichier du "*maitre mot*.pdf" se présente comme ceci :

Pont PRL-001-ACI hall1.pdf

Monorail MRL-010-MTN.pdf

Exemple :

-> Taper 1, cherche avec le maître mot dans les 12 sous dossiers de 1erSemestre, en excluant la recherche dans le sous-dossier : "Rapports provisoires", sur le serveur et ouvre le bon rapport :

\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\1erSemestre

-> Taper 2, cherche avec le maître mot dans les 12 sous dossiers de 2iemeSemestre, en excluant la recherche dans le sous-dossier : "Rapports provisoires", sur le serveur et ouvre le bon rapport :

\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\2iemeSemestre

-> Taper 01, cherche avec le maître mot seulement dans le sous dossier "Rapports provisoires" de 1erSemestre sur le serveur et ouvre le bon rapport :

\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\1erSemestre\Rapports provisoires

-> Taper 02, cherche avec le maître mot seulement dans le sous dossier "Rapports provisoires" de 2iemeSemestre sur le serveur et ouvre le bon rapport :

\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\2iemeSemestre\Rapports provisoires

Il faudrait qu’après l’ouverture du Pdf, la valeur de la cellule de "P*" s’efface, et si par exemple le rapport n’existe pas qu’il l’indique dans un "messagebox" et demande si oui ou non, on veut ouvrir tout de même le sous-dossier du semestre correspondant.

Ci-joint un fichier modèle avec un onglet, j’adapterais le code aux 12 autres onglets.

Le chemin pour Adobe Reader :

"C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"

Merci d’avance pour votre aide.

Pour de plus amples renseignements, n’hésitez pas me contacter.

B.A.

Bonjour le forum,

Un petit up...

Merci d'avance.

B.A.

Bonjour,

Je pense que votre problème est mal présenté. Il est possible de chercher un ou des fichiers en fonction d'un mot-clé puis de le/les ouvrir. Ensuite, pour les cas des répertoires, c'est moins clair...

Voici un essai déjà :

function FileSearch(Rep$, optional Keyword as string, optional Extension as string = ".pdf") as long
sFilename = dir(Rep & "\*" & Keyword & "*" & Extension)
do while sFilename <> ""
    FileSearch = FileSearch + 1
    Shell "C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe " & Rep & "\" & sFilename
    sFilename = dir
loop
if FileSearch = 0 then msgbox "aucun fichier trouvé", 16
end function

En premier argument, il faut le répertoire (sans le "\" de fin), en second argument il faut le mot-clé (sinon, on prend tous les fichiers du répertoire), en troisième argument, facultatif, le type de fichier (par défaut, c'est pdf).

Cdlt,

Bonjour 3GB,

Merci d'avoir pris mon sujet... Désolé pour ma réponse un peu tardive.

Sur la photo jointe pour exemple:

capture

Il faut que lorsque l'on inscrit 2 dans la cellule de la colonne "P", qu'il y est un offset (-2,0) et qu'ensuite avec le maître mot qui s'y trouve, aille ouvrir le pdf: *POT-001-ACI*.pdf correspondant dans \\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\2iemeSemestre

Merci pour l'aide apportée...

B.A.

Bonjour BlackAdder,

Et pourquoi ne pas mettre une liste déroulante avec les 4 valeurs de dossier possibles en colonne P ?

Voici un essai, sur la base de cette idée avec une liste de validation en colonne P ne permettant que les valeurs correspondants aux 4 dossiers ciblés, avec un code qui se déclenche au double-clic sur la colonne N. Le code est à placer dans le module de la feuille concernée :

private sub worksheet_beforedoubleclick(byval target as range, cancel as boolean)
cancel = true
Rep = "\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\"
if target.column = 14 then
    RepFinal = Rep & cells(target.row, "P")
    if dir(RepFinal, vbdirectory) = "" or RepFinal = Rep then msgbox "Renseignez un dossier existant en P", 16: exit sub
    sFilename = dir(RepFinal & "\*" & target.value & "*.pdf")
    do while sFilename <> ""
        FileSearch = FileSearch + 1
        Shell "C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe " & RepFinal & "\" & sFilename
        sFilename = dir
    loop
    if FileSearch = 0 then msgbox "aucun fichier trouvé", 16
end if
end sub

Le cas échéant, il ouvre tous les PDF correspondants (si la cellule en N est vide, tous les pdf trouvés seront ouverts par exemple).

Cdlt,

Bonjour 3GB,

Je vais mettre la liste de validation des données dans la colonne P, ça facilitera les choses…

Par contre je ne peux pas utiliser la macro du double clic pour la colonne N, car dans les colonnes de J à N, il y a une protection des cellules (formules à l’intérieur) faites par un offset, voir la partie de ma macro "protection des formules"…

Je pense qu’il faudrait partir sur un :

Si dans la colonne P = 1, faire un offset de (-2,0), récupérer la valeur de colonne "N" et aller chercher le rapport dans les 12 sous dossiers de 1erSemestre, en excluant la recherche dans le sous-dossier : Rapports provisoires, sur le serveur:

\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\1erSemestre\

Si dans la colonne P = 2, faire un offset de (-2,0), récupérer la valeur de colonne "N" et aller chercher le rapport dans les 12 sous dossiers de 2iemeSemestre, en excluant la recherche dans le sous-dossier : Rapports provisoires, sur le serveur:

\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\2iemeSemestre\

Si dans la colonne P = 01, faire un offset de (-2,0), récupérer la valeur de colonne "N" et aller chercher le rapport seulement dans le sous dossier "Rapports provisoires" de 1erSemestre sur le serveur:

\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\1erSemestre\Rapports provisoires

Si dans la colonne P = 02, faire un offset de (-2,0), récupérer la valeur de colonne "N" et aller chercher le rapport seulement dans le sous dossier "Rapports provisoires" de 2iemeSemestre sur le serveur:

\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\2iemeSemestre\Rapports provisoires

Merci encore pour ton aide.

B.A.

Bonjour BlackAdder,

Sauf erreur, le double clic fonctionne même sur des cellules protégées. Le fait d'annuler l'effet du double clic en affectant true à la variable cancel permet d'éviter tout désagrément...

Sinon, il serait possible de faire le double clic sur la colonne P :

private sub worksheet_beforedoubleclick(byval target as range, cancel as boolean)
cancel = true
Rep = "\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\"
if target.column = 16 then
    RepFinal = Rep & target.value
    if dir(RepFinal, vbdirectory) = "" or RepFinal = Rep then msgbox "Renseignez un dossier existant en P", 16: exit sub
    sFilename = dir(RepFinal & "\*" & target.offset(0, -2).value & "*.pdf")
    do while sFilename <> ""
        FileSearch = FileSearch + 1
        Shell "C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe " & RepFinal & "\" & sFilename
        sFilename = dir
    loop
    if FileSearch = 0 then msgbox "aucun fichier trouvé", 16
end if
end sub

Sinon, le code agira indifféremment :

- Les fichiers recherchés seront les pdf contenant le texte inscrit en N.

- Le dossier de recherche sera le répertoire de base (Rep) concaténé avec la valeur en P (ex : "1erSemestre\Rapports provisoires"). La valeur en P ne doit cependant pas terminer par un antislash.

>>> Si c'est un problème, un simple table de correspondance et un recherchev suffiront à le solutionner. Exemple d'adaptation avec une table de correspondance nommée "correspondance" :

if target.column = 16 then
    dossier = application.vlookup(target.value, range("correspondance"), 2, 0)
    if iserror(dossier) then dossier = ""
    RepFinal = Rep & dossier

Cdlt,

Ps : A noter que j'ai mis à jour le premier code où il y avait la variable Rep à la place de la variable RepFinal dans le Do while.

Bonjour 3GB,

J'ai essayé le code que tu m'as donné, mais j'ai la messagebox suivante qui s'affiche:

capture

Le pdf existe bien...

Une question:
Comment indiquer dans le code que le pdf à ouvrir est soit dans 1erSemestre, 2iemeSemestre, 1erSemestre\Rapports provisoires, 2iemeSemestre\Rapports provisoires?

J'ai essayé d'insérer le second bout de code , mais une erreur "erreur d'exécution '1004' La méthode 'Range' de l'objet '_Worksheet a échoué" sur cette ligne: "dossier = Application...", peut-être ai-je mal fait la manip?

Private Sub worksheet_beforedoubleclick(ByVal target As Range, cancel As Boolean)    
cancel = True
        Rep = "\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\"
If target.Column = 16 Then
    dossier = Application.VLookup(target.Value, Range("correspondance"), 2, 0)
    If IsError(dossier) Then dossier = ""
    RepFinal = Rep & dossier
    If Dir(RepFinal, vbDirectory) = "" Or RepFinal = Rep Then MsgBox "Renseignez un dossier existant en P", 16: Exit Sub
                sFilename = Dir(RepFinal & "\*" & target.Offset(0, -2).Value & "*.pdf") '
            Do While sFilename <> ""
                FileSearch = FileSearch + 1
                Shell "C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe " & RepFinal & "\" & sFilename
                sFilename = Dir
            Loop
            If FileSearch = 0 Then MsgBox "Aucun fichier trouvé", 16
    End If
End Sub

Merci d'avance pour ta réponse...

B.A.

Salut BlackAdder,

C'est normal, il faut que la valeur en P permette, une fois concaténée au répertoire racine, d'avoir un répertoire existant.

Il faut, par exemple, avoir ceci quelque part :

S1 1erSemestre
S22iemeSemestre
S1RP1erSemestre\Rapports provisoires
S2RP2iemeSemestre\Rapports provisoires

Et mettre ce tableau sous forme de tableau structuré puis le renommer "correspondance" pour qu'il y ait une chance que le code fonctionne.

Bien entendu, il faut éventuellement adapter les données en colonne 2 et selon tes désirs celles en colonne 1.

Cdlt,

Bonjour 3GB,

Je dois être vraiment très mauvais car j'ai toujours une erreur, voir ci-dessous:

capture

J'ai fait le tableau structuré comme demandé, nommé le tableau "correspondance"...

Est-ce que ça peut influencer le fait qu'il y ait 12 sous-dossiers à explorer après 1erSemestre pour arriver par ex: *PRL-001-ACI*.pdf qui est dans ACIERIE?

\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\1erSemestre\ACIERIE

Merci d'avance pour ton aide.

À te relire...

B.A.

Bonjour BlackAdder,

Oui bien entendu, ça a une incidence puisque le dossier de recherche n'est pas 1erSemestre par exemple mais un de ses sous-dossiers...

Voici un code testé fonctionnel chez moi (sauf la partie avec la correspondance, qui ne devrait pas poser de problème a priori) :

Private Sub worksheet_beforedoubleclick(ByVal target As Range, cancel As Boolean)
cancel = True
Rep = "\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\"
If target.Column = 16 Then
    'RepFinal$ = Rep & target.Value
    dossier = Application.VLookup(target.Value, Range("correspondance"), 2, 0)
    If IsError(dossier) Then dossier = ""
    RepFinal$ = Rep & dossier
    If Dir(RepFinal, vbDirectory) = "" Or RepFinal = Rep Then MsgBox "Renseignez un dossier existant en P", 16: Exit Sub
    If Sonder(RepFinal, target.Offset(0, -2).Value) = 0 Then MsgBox "aucun fichier trouvé", 16
End If
End Sub

Function Sonder(Repertoire$, Keyword$) as long
Dim t()
sFilename = Dir(Repertoire & "\", vbNormal + vbDirectory)
Do While sFilename <> ""
    If Not sFilename Like "*.*" Then
        n = n + 1: ReDim Preserve t(1 To n)
        t(n) = Repertoire & "\" & sFilename
    ElseIf sFilename Like "*" & Keyword & "*.pdf" Then
        Sonder = Sonder + 1
        CreateObject("Shell.application").Open Repertoire & "\" & sFilename
    End If
    sFilename = Dir
Loop
If n > 0 Then
    For i = LBound(t) To UBound(t)
        Sonder = Sonder(CStr(t(i)), Keyword)
    Next i
End If
End Function

Cdlt,

Bonjour 3GB,

Désolé pour ma réponse tardive, mais je suis au boulot en pointillé...

Je viens d'essayer le code que tu m'as fourni, mais j'ai une erreur:
"Erreur de compilation: type d'argument ByRef incompatible"

sur la ligne:
If Sonder(RepFinal, target.Offset(0, -2).Value) = 0 Then MsgBox "Aucun fichier trouvé", 16

Merci pour ta patience.
À te lire, bonne journée...
B.A.

Bonjour BlackAdder,

Je viens de modifier mon code. Il faut typer la variable (que j'ai typée sur la ligne que j'ai désactivée et remplacée par les 3 lignes qui suivent et que je n'ai pas testées).

Cdlt,

Bonjour 3GB,

Je suis désolé mais j'ai l'erreur avec le messagebox:

"Renseignez un dossier existant en P"

J'ai essayé en mettant le dossier "1erSemestre" sur le Bureau et en modifiant Rep= "C:\Users\aze.rty\Desktop\1erSemestre\" en conséquence, mais c'est pas mieux!

@ +

B.A.

Bonjour BlackAdder,

Pour faire des essais, vous pouvez exécuter le code au pas à pas détaillé à l'aide de la touche F8.

Sinon, il faudra que vous postiez votre code beforedoubleclick et le tableau correspondance ici (en copiant le tableau et en le collant sur le commentaire).

Je rappelle les conditions :

- il faut que Rep contienne un répertoire existant (le répertoire racine si l'on veut) se terminant par un antislash.

- il faut que le tableau correspondance contienne en première colonne vos données alimentant la liste de validation et en seconde colonne les dossiers de recherche, libellés de sorte qu'en les concaténant avec Rep, on obtienne les répertoires ciblés (existants bien entendu). Ceux-ci ne doivent pas commencer ni terminer par un antislash.

- il faut que les cellules de votre colonne P contiennent une liste de validation avec les valeurs de la première colonne du tableau correspondance, à savoir 1, 2, 01, 02 aux dernières nouvelles.

Aussi, il faut rester sur le vrai répertoire. Ca ne changera rien de faire des essais sur un autre répertoire vu que le problème se situe soit au niveau de ce répertoire, qui serait alors mal orthographié, soit au niveau des dossiers de recherche ou d'un échec du recherchev.

Je rappelle que j'ai testé le code et qu'il a fonctionné chez moi, mais je n'ai pas rajouté le recherchev qui n'a pas d'intérêt de mon point de vue. Donc il s'agit juste de parvenir à appliquer ce code fonctionnel à votre cas perso.

Cdlt,

Bonjour 3GB,

Ci-joint le tableau demandé ainsi que le code...

capture10
Private Sub worksheet_beforedoubleclick(ByVal target As Range, cancel As Boolean)
cancel = True
Rep = "\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\"
If target.Column = 16 Then
    'RepFinal$ = Rep & target.Value
    dossier = Application.VLookup(target.Value, Range("correspondance"), 2, 0)
    If IsError(dossier) Then dossier = ""
    RepFinal$ = Rep & dossier
    If Dir(RepFinal, vbDirectory) = "" Or RepFinal = Rep Then MsgBox "Renseignez un dossier existant en P", 16: Exit Sub
    If Sonder(RepFinal, target.Offset(0, -2).Value) = 0 Then MsgBox "Aucun fichier trouvé", 16
End If
End Sub

Function Sonder(Repertoire$, Keyword$) As Long
Dim t()
sFilename = Dir(Repertoire & "\", vbNormal + vbDirectory)
Do While sFilename <> ""
    If Not sFilename Like "*.*" Then
        n = n + 1: ReDim Preserve t(1 To n)
        t(n) = Repertoire & "\" & sFilename
    ElseIf sFilename Like "*" & Keyword & "*.pdf" Then
        Sonder = Sonder + 1
        CreateObject("Shell.application").Open Repertoire & "\" & sFilename
    End If
    sFilename = Dir
Loop
If n > 0 Then
    For i = LBound(t) To UBound(t)
        Sonder = Sonder(CStr(t(i)), Keyword)
    Next i
End If
End Function

Désolé pour mon manque de compétence!

Merci encore.

B.A.

Bonjour BlackAdder,

Pas de souci mais les compétences s'acquièrent, notamment en exécutant au pas à pas.

Essayez de rajouter ces 2 lignes avant le if qui renvoie sur le msgbox :

msgbox Dir(RepFinal, vbDirectory)
msgbox RepFinal = Rep

J'ai l'intuition que la première renverra un point et la seconde renverra vrai.

Si c'était le cas, ça signifierait un échec du recherchev. Les causes possibles sont :

- l'inexistence du tableau "correspondance" (tableau mal renommé),

- l'absorption d'une colonne en AX entrainant un défaut de correspondance,

- un problème au niveau du format. Même s'il y a moins de chance, je vous recommande de choisir d'autres valeurs en 1ère colonne du tableau : S1, S2, RP1, RP2 par exemple, de manière à lever toute ambiguité et à n'avoir que du texte.

Si la première msgbox ne renvoie rien (valeur vide), alors vérifiez l'orthographe de vos dossiers.

Le plus parlant sera tout de même le pas à pas détaillé (touche F8), en ayant préalablement marqué un point d'arrêt sur la ligne cancel = true (en cliquant dans la marge de l'éditeur : un point marron apparait), grâce à la vérification de la variable dossier dans la fenêtre des variables locales.

Si dossier renvoie erreur puis "", cela signifie un échec du recherchev.

Cdlt,

Bonjour 3GB,

La solution est presque là, mais il reste quelques petits aléas à peaufiner :

Lorsque je mets "1" et double clique, la fenêtre s’ouvre avec noté ".", je fais "OK" la fenêtre s’ouvre avec noté "vrai", je fais "OK" la fenêtre s’ouvre avec noté "Renseignez un dossier existant en P".

Et le fait de mettre "S1, S2, RP1, RP2" dans la validation des données, résout le problème en partie !

Lorsque je mets "S1" et double clique, la fenêtre s’ouvre avec noté "1erSemestre", je fais "OK" la fenêtre s’ouvre avec noté "Faux" je fais "OK" et j’ai 2 pdf qui s’ouvrent le rapport "1erSemestre" et le "rapport provisoire 1erSemestre" et une fenêtre s’ouvre avec noté "Aucun fichier trouvé".

Lorsque je mets "RP1" et double clique, la fenêtre s’ouvre avec noté "Rapports provisoires", je fais "OK" la fenêtre s’ouvre avec noté "Faux" je fais "OK" et j’ai le rapport provisoire "1erSemestre" pdf qui s’ouvre et une fenêtre s’ouvre avec noté "Aucun fichier trouvé".

Serait-il possible que lorsque je tape "1" ou "2" ou , il n’y est que le rapport "1erSemestre" ou "2iemeSemestre" qui s’ouvre suivant le cas ?

Serait-il possible que lorsque qu’il ne trouve pas de pdf, une fenêtre me dise qu’il n’y a pas de pdf associé et demande si l’on veut accéder au dossier "mère" : \\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\ ?

Merci encore.

B.A.

Bonjour BlackAdder,

C'est donc signe qu'il faut garder les valeurs textuelles en première colonne du tableau correspondance et oublier 1, 2, 01 et 02...

Voici un nouvel essai pour éviter les rapports provisoires lorsqu'on saisit S1 ou S2 et pour éviter le msgbox si des fichiers sont trouvés :

Private Sub worksheet_beforedoubleclick(ByVal target As Range, cancel As Boolean)
cancel = True
Rep = "\\FOR-FSPARIP-01V\Utilisateurs\Commun\Distribution users\Dossier machine\Planification contrôles réglementaires\PONTS\Contrôles réglementaires\2021\"
If target.Column = 16 Then
    'RepFinal$ = Rep & target.Value
    dossier = Application.VLookup(target.Value, Range("correspondance"), 2, 0)
    If IsError(dossier) Then dossier = ""
    RepFinal$ = Rep & dossier
    If Dir(RepFinal, vbDirectory) = "" Or RepFinal = Rep Then MsgBox "Renseignez un dossier existant en P", 16: Exit Sub
    If Sonder(RepFinal, target.Offset(0, -2).Value) = 0 Then
        'MsgBox "Aucun fichier trouvé", 16
        if msgbox("Voulez-vous ouvrir le dossier parent ?", vbyesno, "Ouvrir l'explorateur") = vbyes then
            Shell Environ("WINDIR") & "\explorer.exe " & left(Rep, len(Rep) - 1), vbNormalFocus
        end if
    end if
End If
End Sub

Function Sonder(Repertoire$, Keyword$) As Long
Dim t()
sFilename = Dir(Repertoire & "\", vbNormal + vbDirectory)
Do While sFilename <> ""
    If Not sFilename Like "*.*" Then
        n = n + 1: ReDim Preserve t(1 To n)
        t(n) = Repertoire & "\" & sFilename
    ElseIf sFilename Like "*" & Keyword & "*.pdf" Then
        Sonder = Sonder + 1
        CreateObject("Shell.application").Open Repertoire & "\" & sFilename
    End If
    sFilename = Dir
Loop
If n > 0 Then
    For i = LBound(t) To UBound(t)
        if not t(i) like "*\Rapports provisoires" then Sonder = Sonder + Sonder(CStr(t(i)), Keyword)
    Next i
End If
End Function

On fonctionne toujours sur un principe de récursivité car j'avais cru comprendre qu'il fallait éventuellement chercher dans des sous-dossiers. Sinon, ce serait beaucoup plus simple...

J'ai remplacé le msgbox par la possibilité d'ouvrir le répertoire.

Cdlt,

Bonjour 3GB,

Je crois que je peux dire que tu as solutionné ma demande, j'ai fais quelques essais en local (je suis actuellement en vacance) et ça m'a tout l'air de fonctionner...

Je confirmerai et mettrait en résolu après quelques essais au boulot, lors de ma reprise!

Merci encore beaucoup pour tes efforts et ta patience!

B.A.

Rechercher des sujets similaires à "ouvrir pdf stocke serveur suivant maitre mot inscrit"