directory et recherche

Le
stephprod
Bonjour,

Voila j'expose mon truc:

j'ai une cellule qui contient un numéro dans un tableau allant de A:Z ce
chiffre est indiqué en colonne A

je voudrais qu'une macro prenne ce chiffre qui rajoute facture devant avec
un espace et que ensuite il prenne en compte des caracteres et m'ouvre le
répertoire sur le lecteur "v:" et m affiche la liste des fichiers contenus
dans ce répertoire.

exemple:

en A::
2900
ce qui donnerai
"facture 2900 et des caracteres"
il ouvre le répertoire
"v:facture 2900 et des caracteres"
et m'affiche dans un userform la liste des fichiers contenu dans ce
répertoire.

merci à tous ceux qui veulent bien m'aider

stephane
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #5238891
Bonjour,

Private Sub UserForm_Initialize()
'repertoire = "v:Facture " & [A1] & " et des caracteres"
nf = Dir(repertoire & "*.*")
Do While nf <> ""
Me.ListBox1.AddItem nf
nf = Dir
Loop
End Sub

JB

On 27 fév, 08:39, "stephprod"
Bonjour,

Voila j'expose mon truc:

j'ai une cellule qui contient un numéro dans un tableau allant de A:Z ce
chiffre est indiqué en colonne A

je voudrais qu'une macro prenne ce chiffre qui rajoute facture devant avec
un espace et que ensuite il prenne en compte des caracteres et m'ouvre le
répertoire sur le lecteur "v:" et m affiche la liste des fichiers conten us
dans ce répertoire.

exemple:

en A::
2900
ce qui donnerai
"facture 2900 et des caracteres"
il ouvre le répertoire
"v:facture 2900 et des caracteres"
et m'affiche dans un userform la liste des fichiers contenu dans ce
répertoire.

merci à tous ceux qui veulent bien m'aider

stephane


stephprod
Le #5238851
merci JB mais dans ce truc
'repertoire = "v:Facture " & [A1] & " et des caracteres"
----- & " et des caracteres" est variable.





"JB"
Bonjour,

Private Sub UserForm_Initialize()
'repertoire = "v:Facture " & [A1] & " et des caracteres"
nf = Dir(repertoire & "*.*")
Do While nf <> ""
Me.ListBox1.AddItem nf
nf = Dir
Loop
End Sub

JB

On 27 fév, 08:39, "stephprod"
Bonjour,

Voila j'expose mon truc:

j'ai une cellule qui contient un numéro dans un tableau allant de A:Z ce
chiffre est indiqué en colonne A

je voudrais qu'une macro prenne ce chiffre qui rajoute facture devant avec
un espace et que ensuite il prenne en compte des caracteres et m'ouvre le
répertoire sur le lecteur "v:" et m affiche la liste des fichiers contenus
dans ce répertoire.

exemple:

en A::
2900
ce qui donnerai
"facture 2900 et des caracteres"
il ouvre le répertoire
"v:facture 2900 et des caracteres"
et m'affiche dans un userform la liste des fichiers contenu dans ce
répertoire.

merci à tous ceux qui veulent bien m'aider

stephane


francois.forcet
Le #5238841
Bonjours Stéphane

Soit Feuil1 Cellule A1 le numéro
résultat en colonne A à partir de la 1° cellule libre
Le code :

Répertoire = "facture " & Range("A1") & " et des caracteres"
With Application.FileSearch
.LookIn = "C:" & Répertoire
.FileType = msoFileTypeAllFiles
.Execute
End With
With Application.FileSearch
For I = 1 To .FoundFiles.Count
Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0) =
Mid(.FoundFiles(I), Len(.LookIn) + 2, Len(.FoundFiles(I)) -
Len(.LookIn) + 2)
Next I
End With

Si tu souhaites rapporter le résultat dans d'autres cellules adaptes
cette ligne :

Sheets("Feuil1").Range("A65535")

Pour une Feuil2 colonne B il faut mettre :

Sheets("Feuil2").Range("B65535")

Celà devrait te convenir

Dis moi !!!!
stephprod
Le #5238821
ca y est j'ai réussi à faire mon truc j'ai utilisé
Worksheets(an$).Cells(I, 29).Value =
Workbooks(doss_cour$).Sheets("ORDRE_MISSION").Range("NO_DOSSIER").Value

mais je pêche sur le fait de reprendre ma cellule
mon chemin se trouve en colonne AC ou 29
je sais lui rajouter le chemin du disk dur...(" v: ")

maintenant comment, lors d'un click sur la cellule, qu'il m ouvre un
userform avec le contenu de ce répertoire?

merci d'avance


"stephprod" 47c517ff$0$853$
merci JB mais dans ce truc
'repertoire = "v:Facture " & [A1] & " et des caracteres"
----- & " et des caracteres" est variable.





"JB"
Bonjour,

Private Sub UserForm_Initialize()
'repertoire = "v:Facture " & [A1] & " et des caracteres"
nf = Dir(repertoire & "*.*")
Do While nf <> ""
Me.ListBox1.AddItem nf
nf = Dir
Loop
End Sub

JB

On 27 fév, 08:39, "stephprod"
Bonjour,

Voila j'expose mon truc:

j'ai une cellule qui contient un numéro dans un tableau allant de A:Z ce
chiffre est indiqué en colonne A

je voudrais qu'une macro prenne ce chiffre qui rajoute facture devant
avec
un espace et que ensuite il prenne en compte des caracteres et m'ouvre le
répertoire sur le lecteur "v:" et m affiche la liste des fichiers
contenus
dans ce répertoire.

exemple:

en A::
2900
ce qui donnerai
"facture 2900 et des caracteres"
il ouvre le répertoire
"v:facture 2900 et des caracteres"
et m'affiche dans un userform la liste des fichiers contenu dans ce
répertoire.

merci à tous ceux qui veulent bien m'aider

stephane






stephprod
Le #5238811
SI je repredn ton code si je l'ai bien compris et tout d'abord merci.
Répertoire = cellule AC 'contenant mon chemin du répertoire
LookIn = "v:" & Répertoire
.FileType = msoFileTypeAllFiles
.Execute
End With

MAIS JE NE COMPRENDS PAS CETTE PARTIE QUI SUIT:
With Application.FileSearch
For I = 1 To .FoundFiles.Count
Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0) Mid(.FoundFiles(I), Len(.LookIn) + 2, Len(.FoundFiles(I)) -
Len(.LookIn) + 2)
Next I
End With





Bonjours Stéphane

Soit Feuil1 Cellule A1 le numéro
résultat en colonne A à partir de la 1° cellule libre
Le code :

Répertoire = "facture " & Range("A1") & " et des caracteres"
With Application.FileSearch
.LookIn = "C:" & Répertoire
.FileType = msoFileTypeAllFiles
.Execute
End With
With Application.FileSearch
For I = 1 To .FoundFiles.Count
Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0) Mid(.FoundFiles(I), Len(.LookIn) + 2, Len(.FoundFiles(I)) -
Len(.LookIn) + 2)
Next I
End With

Si tu souhaites rapporter le résultat dans d'autres cellules adaptes
cette ligne :

Sheets("Feuil1").Range("A65535")

Pour une Feuil2 colonne B il faut mettre :

Sheets("Feuil2").Range("B65535")

Celà devrait te convenir

Dis moi !!!!
JB
Le #5238751
Si on clique sur A2:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$2" Then
UserForm1.Show
End If
End Sub

JB


On 27 fév, 09:07, "stephprod"
ca y est j'ai réussi à faire mon truc j'ai utilisé
Worksheets(an$).Cells(I, 29).Value =
Workbooks(doss_cour$).Sheets("ORDRE_MISSION").Range("NO_DOSSIER").Value

mais je pêche sur le fait de reprendre ma cellule
mon chemin se trouve en colonne AC ou 29
je sais lui rajouter le chemin du disk dur...("  v: ")

maintenant comment, lors d'un click sur la cellule, qu'il m ouvre un
userform avec le contenu de ce répertoire?

merci d'avance

"stephprod" 47c517ff$0$853$



merci JB mais dans ce truc
 'repertoire = "v:Facture " & [A1] & " et des caracteres"
-----  & " et des caracteres" est variable.

"JB"
Bonjour,

Private Sub UserForm_Initialize()
 'repertoire = "v:Facture " & [A1] & " et des caracteres"
 nf = Dir(repertoire & "*.*")
 Do While nf <> ""
  Me.ListBox1.AddItem nf
  nf = Dir
 Loop
End Sub

JB

On 27 fév, 08:39, "stephprod"
Bonjour,

Voila j'expose mon truc:

j'ai une cellule qui contient un numéro dans un tableau allant de A:Z ce
chiffre est indiqué en colonne A

je voudrais qu'une macro prenne ce chiffre qui rajoute facture devant
avec
un espace et que ensuite il prenne en compte des caracteres et m'ouvre le
répertoire sur le lecteur "v:" et m affiche la liste des fichiers
contenus
dans ce répertoire.

exemple:

en A::
2900
ce qui donnerai
"facture 2900 et des caracteres"
il ouvre le répertoire
"v:facture 2900 et des caracteres"
et m'affiche dans un userform la liste des fichiers contenu dans ce
répertoire.

merci à tous ceux qui veulent bien m'aider

stephane- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -




francois.forcet
Le #5238691
Rebonjours à toi

La partie :

With Application.FileSearch
For I = 1 To .FoundFiles.Count
Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0) =
Mid(.FoundFiles(I), Len(.LookIn) + 2, Len(.FoundFiles(I)) -
Len(.LookIn) + 2)
Next I
End With

Qui veut dire

With Application.FileSearch : Avec l'instruction FileSearch qui
recherche des fichiers avec les paramètres déterminés précédemment

For I = 1 To .FoundFiles.Count

Une variable "I" allant de 1 jusqu'au nombre de fichier trouvé

Sheets("Feuil1").Range("A65535").End(xlUp).Offset(1, 0) = : La
première cellule vide de la colonne A Feuil1 est égale à

Mid(.FoundFiles(I), Len(.LookIn) + 2, Len(.FoundFiles(I)) -
Len(.LookIn) + 2)

Mid (la partie)
.FoundFiles(I) (Chemin du fichier x)
Len(.LookIn) + 2 (à partir du caractère dont le numéro est détermin é
par la longueur du paramètre LooKin précisé dans la première partie,
te concernant c'est : "v:" & Répertoire, auquel on rajoute 2)
Len(.FoundFiles(I)) - Len(.LookIn) + 2 (Jusqu'au caractère dont le
numéro est déterminé par la différence entre la longueur du chemin d u
fichier x et la la longueur du paramètre LooKin précisé dans la
première partie

En prenant un exemple

Soit "Mon fichier.xls"
Ayant pour chemin :
"C:RépertoireMon fichier.xls"
FoundFiles(I) = "C:RépertoireMon fichier.xls"
LookIn = "C:Répertoire"

Mid(.FoundFiles(I), Len(.LookIn) + 2, Len(.FoundFiles(I)) -
Len(.LookIn) + 2)
équivaux à
Mid("C:RépertoireMon fichier.xls",13+2,29-(13+2))

Soit Mid("C:RépertoireMon fichier.xls",15,14)

A partir du 15° caractère de "C:RépertoireMon fichier.xls" soit "M"
et 14 caractères
Ce qui donne au final :

Mon fichier.xl
xl étant une extension le résultat donne :

Mon fichier.xls

Il faudrait en toute logique mettre :

Mid(.FoundFiles(I), Len(.LookIn) + 2, Len(.FoundFiles(I)) -
Len(.LookIn) + 1)

Pour avoir

Mid("C:RépertoireMon fichier.xls",15,15)

Qui correspont à :

Mon fichier.xls


Espérant avoir répondu à ton attente

Dis moi !!!!
Publicité
Poster une réponse
Anonyme