LeopoldPartisan
Messages postés3Date d'inscriptionmercredi 30 janvier 2008StatutMembreDernière intervention28 novembre 2008
-
27 nov. 2008 à 15:08
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 2016
-
28 nov. 2008 à 17:14
Je dois établir une liste de fichier excel contenus dans une série de subfolder d'un serveur : X:\belclean\... ce serveur contient une 20 sous répertoires mais je devrais pouvoir ne selectionner que les répertoires portant les noms suivant : BXL1,BXL2,BXL3,VL1,VL2,VL3,VL4,WL1,WL2,WL3 & WL4. chacun de ses répertoires contient environ entre 50 et 60 classeurs excel.
La liste devrait contenir les champs suivants
1) Directory
2) folder (voir liste plus haut)
3) nom du fichier (NNAAA.xls)
4) date de création du fichier
5) date dernière modification du fichier
où cela se complique c'est que j'aurais aussi besoin de 4 données contenues dans ces fichiers *.xls
='X:\belclean\VL2\[54GERA.xls]Totaux'!$A$5
='X:\belclean\VL2\[54GERA.xls]Checklist'!$B$9
='X:\belclean\VL2\[54GERA.xls]Totaux'!$H$8
='X:\belclean\VL2\[54GERA.xls]Totaux'!$A$8
6) Site:54GERA
7) date du contrôle : 01/08/2008
8) Bloc : A
9) Superficie :1092,32
Je devrais terminer par un hyperlink vers le dit fichier pour un contrôle éventuel.
J'ai découvert qu'en VBA c'était possible mais souvent de plusieurs macros différentes. Je commence à peine et je suis comme qui dirait un peu dépassé.
Pourriez vous m'aider ??
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 27 nov. 2008 à 15:11
BIEN LE BONJOUR A TOI AUSSI....
Le forum n'est pas un endroit ou l'on demande un code tout fait.
C'est bien de nous exposer ce que tu dois faire... mais as tu commencé quelques chose?
[../reglement.aspx Voir le règlement de CodeS-SourceS]
@+: Ju£i€n Pensez: Réponse acceptée
cs_loulou69
Messages postés672Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention 2 juin 20161 27 nov. 2008 à 16:00
bonjour
De mémoire et selon la version d'excel Francais ou Anglais
soit LIEN_HYPERTEXTE soit HYPERLINK
Sans VBA, Car en collant la fonction =LIEN_HYPERTEXTE(LC(-1))
Avec VBA Cell("A1").Formula= "=LIEN_HYPERTEXTE(LC(-1))
et LC a remplacer par RC si anglais
Je cherche une macro qui me liste tous les fichiers d'un répertoire quelconque
Sub zaza()
Set fs = Application.FileSearch
With fs
.LookIn = "C:Documents and SettingsflorenceApplication
DataMicrosoftExcel"
.Filename = "*"
.Execute
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
If .FoundFiles.Count = 0 Then
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub
*******************************
Si dans cette procédure j'écris :
.FileName = "F*.*"
Et bien j'obtiens tous les fichiers débutant par la lettre
F du répertoire choisi.
Si j'écris : .FileName = "F*"
J'obtiens seulement le nombre de fichiers dont les extensions font partie de la
constante "msoFileTypeOfficeFiles"
Comme établir la liste des fichiers contenus dans un répertoire avec un lien hypertexte pointant sur chacun ?
La macro Repertorier appelle la fonction Lister en lui passant en paramètres les choix de l'utilisateur sur
- le dossier à analyser
- L'inclusion ou non des sous dossiers,
- Le N° de la ligne ou commencer à incrire les données
- Le filtrage éventuel sur un type de fichier.
Sub Repertorier()
'Une méthode basique sans API pour lister les répertoires et
'sous-répertoires. Michel Pierron, MPFE 2002. Adaptation Flo Cabon sur une idée de "mrik"
'* nRow = Ligne de départ
'* FolderName = Chemin du répertoire à lister
'* Suffix = Filtre optionnel des types de fichiers
'* SubDir = True pour étendre la liste aux sous-répertoires
Dim LeMessage As String, LeRepertoire As String, Lextension As String
Dim Profondeur As VbMsgBoxResult
Dim nRow As Long
LeMessage = "Choisissez le dossier à analyser"
LeRepertoire = GetDirectory(LeMessage)
Lextension = InputBox("indiquez éventuellement une extension de fichier pour filtrer les fichiers", "Type de fichier", "*.*")
Profondeur = MsgBox("Voulez vous analyser aussi les sous-répertoires ?", vbYesNo, "Profondeur d'analyse")
nRow = InputBox("indiquez le N° de la première ligne pour le tableau de sortie", "Sortie des résultats", "1")
If Profondeur = vbYes Then
truc = Lister(nRow, LeRepertoire, Lextension, True)
Else
truc = Lister(nRow, LeRepertoire, Lextension, False)
End If
End Sub
Function Lister(nRow&, FolderName$, Optional Suffix$ "*.*", Optional SubDir As Boolean True)
Dim i As Long, x As Long, File As String, Folder As String, nbFolders() As String
Do While Len(File) > 0
With ActiveSheet
.Hyperlinks.Add Anchor:=.Cells(nRow, 2), _
Address:=FolderName & File, _
TextToDisplay:=File
End With
nRow = nRow + 1
File = Dir
Loop
If Not SubDir Then Exit Function
x = 0
Folder = Dir(FolderName, vbDirectory)
Do While Folder > ""
If Folder <> "." And Folder <> ".." ThenIf (GetAttr(FolderName & Folder) And vbDirectory) vbDirectory Then x x + 1
End If
Folder = Dir
Loop
ReDim nbFolders(x + 1)
i = 1
nbFolders(i) = Dir(FolderName, vbDirectory)
Do While nbFolders(i) > ""
If nbFolders(i) <> "." And nbFolders(i) <> ".." ThenIf (GetAttr(FolderName & nbFolders(i)) And vbDirectory) vbDirectory Then i i + 1
End If
nbFolders(i) = Dir
Loop
For i = 1 To UBound(nbFolders()) - 1
Call Lister(nRow, FolderName & nbFolders(i), Suffix)
Next
End Function
Je suis un pneu dans la panade, car je n'ai aucune formation VBA et sur le serveur où ce trouve les fichiers, je devrais ne pouvoir que sélectionnet les sous-dossiers stipulés plus haut.
Merci de votre aide