hidozo
Messages postés56Date d'inscriptionsamedi 24 mai 2008StatutMembreDernière intervention 6 novembre 2010
-
26 mai 2008 à 19:03
hidozo
Messages postés56Date d'inscriptionsamedi 24 mai 2008StatutMembreDernière intervention 6 novembre 2010
-
27 mai 2008 à 16:50
Bonjour,
j'ai ce code qui me permet de copier la liste de fichier d'un répertoire. Simplement, j'aimerai pouvoir rajouter le fait que je puisses compléter cette liste de fichier par d'autres.
Donc je pensais rajouter :
Dim LigneLibre As long
LigneLibre = Range("A65536").End(xlUp).Row + 1
Par contre, j'ai nun peut tout essayé et je ne sais pas comment combiner la logique de la boucle et la dernière cellule vide.
Sub RecupNomFichier(ByVal Chemin As String, ByRef Tableau As Variant)
Dim Fichier As String
Dim Compteur As Integer
Dim LigneCompteur As Integer
' récupère le chemin depuis X1
Chemin = Range("x1")
Chemin = Chemin + "\*.*"
Compteur = 1
' récupère le nom du premier fichier contenu dedans
Fichier = Dir(Chemin)
Do While (Len(Fichier) > 0)
' a l'aide d'une boucle tous les noms de fichiers contenus dans le répertoire _
sont placés dans la colonne Z
ReDim Preserve Tableau(Compteur)
Tableau(Compteur - 1) = Fichier
LigneCompteur = Compteur + 1
ActiveSheet.Range("z" & LigneCompteur).Value = Tableau(Compteur - 1)
Compteur = Compteur + 1
Fichier = Dir()
Loop
End Sub
Sub RecupFichierTableau()
Application.ScreenUpdating = False
On Error Resume Next
Dim Tableau() As String
Call RecupNomFichier(Chemin, Tableau)
FiltreAlpha
End Sub
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 27 mai 2008 à 14:59
simplifié, je fais par exemple :
Sub RecupNomFichier(ByVal Chemin As String, Optional TargetColumn As Long = 26)
Dim Fichier As String
Dim Compteur As Integer
Compteur = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
Fichier = Dir$(Chemin)
Do While LenB(Fichier)
Compteur = Compteur + 1
ActiveSheet.Cells(Compteur, TargetColumn).Value = Fichier
Fichier = Dir$()
Loop
End Sub
Sub RecupFichierTableau()
RecupNomFichier "C:\*.*"
End Sub
hidozo
Messages postés56Date d'inscriptionsamedi 24 mai 2008StatutMembreDernière intervention 6 novembre 2010 27 mai 2008 à 16:04
Re bonjour,
Quand je disais que ça ne marchait pas : La procédure tourne, mais rien ne se copie dans la colonne Z.
bref, j'ai refais des tests en conservant mes sub :
avec : Compteur = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
- sur différents dossiers, tout se copie à la suite dans la colonne Z
- par contre la 1ère cellule (pour le 1er répertoire) de la colonne Z varie (74, 119, 126, au petit bonheur la chance).
hidozo
Messages postés56Date d'inscriptionsamedi 24 mai 2008StatutMembreDernière intervention 6 novembre 2010 27 mai 2008 à 16:50
ton code de 14:59:15 ne me donne certains fichiers sauf les photos (JPG) que je voudrais.
par contre, si je n'enregistre par le classeurs, chaque fois que je lance une nouvelle manip :
- efface colone Z (via une macro)
- explorer (pour le répertoire)
- liste photos (pour coller les noms de fichier)
à chaque nouvelle manip, les noms se collent après la fin des manip précédentes. Par exemple si j'ai 50 fichier, cellule 1 à 50, j'efface et je refais la manip, les fichiers vont se coller de 51 à ...
Bizarre non ?
par contre les noms se collent après la dernière cellule occupée si je prends plusieurs répertoires.
Je vais garder cette solution pour l'instant, j'affinerai plus tard.
Je te remercie pour ton aide.
Je mettrai d'autres questions dans le forum, car je n'en suis qu'au début de ma programation.