Trouver des fichiers provenant d'un dossier
Bonjour à tous !
Je travaille sur un gros dossier Excel avec près de 80 feuilles. Celui-ci se trouve sur un serveur et va probablement être déplacé..
A l'intérieur de celui-ci se trouve de nombreuses macros et lien hypertexte mais celle-ci se base uniquement sur un dossier à un endroit bien précis.
J'ai actuellement le code suivant pour une feuille:
Private Sub Worksheet_Activate()
Dim tabl()
Dim i As Byte
i = 1
ReDim tabl(i)
repertoire = "S:\OUTILS\TEST\Pierre\Biblio_caténaires\Blocs\21464-1\2125"
nf = Dir(repertoire & "\*.dwg*")
Do While nf <> ""
tabl(i) = nf
i = i + 1
ReDim Preserve tabl(i)
nf = Dir ' suivant
Loop
With Sheets("21464-1").[V11].Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(tabl, ",")
End WithEn fait j'aimerais que le répertoire S:\OUTILS\TEST\Pierre\Biblio_caténaires\Blocs\21464-1\2125 soit "variable", c'est à dire qu'on ai:
Le dossier où se trouve le fichier Excel\Blocs\"Nom de la feuille"\"Valeur de la cellule K..."
Voila, je suis un peu perdu sachant que je n'ai pas énormément de connaissances en programmation. Merci à toutes les personnes qui pourront m'aider !
Salut
Tu peux utiliser d'autres variables pour alimenter une variable
repertoire = "S:\OUTILS\TEST\Pierre\Biblio_caténaires\Blocs\21464-1\2125"Pour le chemin d'accès du fichier :
ThisWorkbook.PathPour le nom de la feuille active :
ActiveSheet.NamePour la valeur de K1 de la feuille active :
ActiveSheet.Range("K1").ValueLa concaténation des informations se fait avec le "et" commercial "&"
Ce qui donne :
repertoire = ThisWorkbook.Path & "\Blocs\" & ActiveSheet.Name & "\" & Activesheet.range("K1").ValueIl y a d'autres façons de faire également
A+
Effectivement merci !
Du coup j'ai pu adapter tout ça et je me retrouve avec :
Private Sub Worksheet_Activate()
'Menu déroulant
Dim tabl()
For k = 11 To 63
Dim i As Byte
i = 1
ReDim tabl(i)
repertoire = ThisWorkbook.Path & "\Blocs\" & ActiveSheet.Name & "\" & Cells(k, 11).Value 'entrez le nom du repertoire ou trouver les fichiers
nf = Dir(repertoire & "\*.dwg*") 'mettre l extension désiré
Do While nf <> ""
tabl(i) = nf
i = i + 1
ReDim Preserve tabl(i)
nf = Dir ' suivant
Loop
With Sheets(ActiveSheet.Name).Cells(k, 23).Validation 'Entrez le numero de la feuille ainsi que la cellule correspondante
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Join(tabl, ",")
End With
k = k + 1
Next k
End Sub
Merci !