Trouver les fichiers en mode dynamique ?

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

bon ok merci mais avec ceci :

d:\essai\fichiersexcel\fichiers modifiés\

il ne me crée que dans le repertoire essai/fichierexcel, moi j'aimerai qu'il me crée dans le repertoire donné dès le départ.

Code:
Sub cree_sousrep()
'teste l'exitence du répertoire
If Len(Dir(repertoirede départ mais comment le mettre ?, vbDirectory)) = 0 Then
'le crée si  il n'existe pas
    MkDir "d:\essai\fichiersexcel\fichiers modifiés\"
End If
End Sub
il ne me prend pas le "chemin"
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Trouver les fichiers en mode dynamique ?

Re


Pourquoi appelles tu plusieurs la meme macro?

Private Sub CommandButton1_Click()
ListerLesFichiersDunRepertoire
End Sub

Private Sub CommandButton2_Click()
ListerLesFichiersDunRepertoire
End Sub

Private Sub CommandButton3_Click()
ListerLesFichiersDunRepertoire
End Sub

Private Sub CommandButton4_Click()
ListerLesFichiersDunRepertoire
End Sub

Private Sub CommandButton5_Click()
ListerLesFichiersDunRepertoire
End Sub
De même je ne comprends pas ceci ???

Ta macro est commentée et donc ne fait rien
Code:
Sub ListerLesFichiersDunRepertoire()
Dim chemin As String
    chemin = ChoixDossierFichier("")
    If chemin = "" Then Exit Sub
    ListerLesFichiersParOrdreAlpha chemin
    loopThroughFilesExample
End Sub

Sub loopThroughFilesExample()
Application.DisplayAlerts = False
myFile = ActiveWorkbook.Name
myPath = chemin       'Change this to your directory
workfile = Dir(myPath & "*.xls")
'Do While workfile <> ""
'application.StatusBar = "Now working on " & workfile workbooks.Open Filename:=myPath & workfile
'doSomething ActiveWorkbook
'ActiveWorkbook.Save: Windows(workfile).Close
'Windows(myFile).Activate workfile = Dir()
'Loop
Application.StatusBar = False
End Sub
 
Dernière édition:

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

lol c'est juste pour mes boutons, pour le moment ils font tous la meme chose mais plus tard ça ne sera plus le cas

J'ai mis une explication dans la page d'avant de l'interet de mes boutons.

la partie que tu ne comprends, devrait me servir à appliquer une macro sur tout un ensemble de fichier contenu dans un repertoire : "Boucler sur les fichiers XLS d'un répertoire, et leur appliquer une macro"
 
Dernière édition:

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

mais deja comment faire pour me créer mon sous repertoire ? si au début j'ai choisi le d:\essai, il devrait me créer un d:\essai\fichiermodi, puis si je ré-essaie avec e:\bckup, il devrait me créer un e:\bckup\fichiermodi

oui ma macro est commentée car je ne sais quoi mettre dedans comme macro


ce que je souhaiterai obtenir :


1) On lance Lister Les Fichiers D'un Répertoire.xls
2) on clique sur "repertoire" -> on obtient la liste des fichiers qui m'interesse (exemple: ceux qui sont dans d:\essai\fichiersexcel)
3) on clique sur le bouton "2" -> les fichiers présents dans la liste se transforment en fichiermacroé (avec dont les 3 feuilles - dont le graphique) et s'exportent automatiquement dans un sous-repertoire (exemple : d:\essai\fichiersexcel\fichiers modifiés)
4) on clique sur le bouton "3" -> la feuille 3 (celle du graphique) des fichiers macroé se transforment en pdf et s'exportent automatiquement dans un sous-repertoire (exemple : d:\essai\fichiersexcel\fichiers modifiés\pdf)

Pour le moment, l'étape 1 et l'étape 2 marchent très bien.
 
Dernière édition:

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

bon j'ai essayé ceci et cela ne me fait rien du tout ...
Code:
 Sub cree_sousrep()
'teste l'exitence du répertoire
If Len(Dir((chemin + "\fichiers modifiés\"), vbDirectory)) = 0 Then
'le crée si  il n'existe pas"
    MkDir (chemin + "\fichiers modifiés\")
End If
il devrait me créer mes sous repertoire normalement non ?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Trouver les fichiers en mode dynamique ?

Re


Comme ca cela fonctionne chez moi
Code:
Sub cree_sousrep()
Dim chemin As String
 chemin = "C:\Temp\"
'teste l'exitence du répertoire
If Len(Dir(chemin & "fichiers modifiés\", vbDirectory)) = 0 Then
'le crée si  il n'existe pas"
 MkDir chemin & "fichiers modifiés\"
End If
 End Sub
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

le soucis c'est que moi j'ai ça :

Code:
chemin = ChoixDossierFichier("")
et

Code:
Function ChoixDossierFichier(Racine)
Dim objShell, objFolder, chemin, SecuriteSlash, FlagChoix&, Msg$
    FlagChoix = &H4000&: Msg = "Choisir un dossier :"
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(&H0&, Msg, FlagChoix, Racine)
    If objFolder Is Nothing Then Exit Function
    chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & ""
    ChoixDossierFichier = chemin
End Function
mais bon je ne vois pourquoi ça ne marche même pas, ma variable chemin étant bien définie en string aussi.
 
Dernière édition:

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

1) On lance Lister Les Fichiers D'un Répertoire.xls
2) on clique sur "repertoire" -> on obtient la liste des fichiers qui m'interesse (exemple: ceux qui sont dans d:\essai\fichiersexcel)
3) on clique sur le bouton "2" -> les fichiers présents dans la liste se transforment en fichiermacroé (avec dont les 3 feuilles - dont le graphique) et s'exportent automatiquement dans un sous-repertoire (exemple : d:\essai\fichiersexcel\fichiers modifiés)
4) on clique sur le bouton "3" -> la feuille 3 (celle du graphique) des fichiers macroé se transforment en pdf et s'exportent automatiquement dans un sous-repertoire (exemple : d:\essai\fichiersexcel\fichiers modifiés\pdf)
Coucou me revoilou, je n'ai pas tout suivi mais j'ai compris que tu avais un problème... Je reprends donc tes questions.
1 -> J'ai modifié la procédure ui n'était qu'un ébauche. Par contre, je te déconseille, pour faire ce que tu veux d'utiliser une liste d'hyperlinks puisque la sélection d'un fichier va l'ouvrir.
2 -> Rien de changé à ce niveau là, c'est ok.
3 -> Je n'ai compris que la fin de ta phrase : Déplacer ou copier les fichier de la liste dans un nouveau répertoire.
Pour récupérer le répertoire courant, j'ai créé deux colonnes, la première contient le nom du répertoire courant, la seconde les noms de fichiers
Pour créer le nouveau répertoire, tu récupères le nom du répertoire et derrière ton bouton, tu mets
Code:
NomRep = Worksheets("Feuil1").cells(1,1).value & "\" & NewRep
Mkdir NomRep
ensuite tu déplaces ou copies tes fichiers
Regarde à MoveFile, méthode dans l'aide -> F1 (faut bien que tu travailles un peu ;) )
4 -> Pour les pdf, la question est posée 20 fois par semaine, tu devrais trouver ça sans difficulté.

Enfin je joins ici trois fichiers (je supprimerai les autres dans les posts respectifs)
Le premier crée une liste des fichiers d'un répertoire choisi sans Hyperlinks.
Dans ce fichier, tu peux supprimer le code placé dans la feuille de code de feuil1 qui permet d'ouvrir un fichier par simple sélection :
Voir la pièce jointe 717030

Le second crée une liste des fichiers d'un répertoire choisi avec Hyperlinks :
Voir la pièce jointe 717031

Le troisième liste les classeurs du répertoire sélectionné et de ses sous-répertoires :
Voir la pièce jointe 717032
Bon courage
@+


NB - Je ferai le ménage de mes anciens message en fin de journée, là, je vais au soleil ;)

Edit
Ménage fait !
 

Fichiers joints

Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Trouver les fichiers en mode dynamique ?

Re


Il suffit d'adapter ainsi

Code:
Public chemin As String
Sub ListerLesFichiersDunRepertoire()
chemin = ChoixDossierFichier("")
If chemin = "" Then Exit Sub
If Len(Dir(chemin & "\fichiers modifiés\", vbDirectory)) = 0 Then
'le crée si  il n'existe pas"
 MkDir chemin & "\fichiers modifiés\"
End If
End Sub
Ainsi il y a bien création d'un sous répertoire dans le répertoire choisi au départ
 
Dernière édition:

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

salut epaf

"1 -> J'ai modifié la procédure ui n'était qu'un ébauche. Par contre, je te déconseille, pour faire ce que tu veux d'utiliser une liste d'hyperlinks puisque la sélection d'un fichier va l'ouvrir." -> oh non, moi qui avait tout basé la dessus ...
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

Je me suis permis de modifier la macro en feuil1

Code:
Private Sub CommandButton1_Click()
ListerLesFichiersDunRepertoire
End Sub

Private Sub CommandButton2_Click()
NomRep1 = Worksheets("Feuil1").Cells(1, 1).Value & "\" & "Données Excel"
MkDir NomRep1
NomRep2 = Worksheets("Feuil1").Cells(1, 1).Value & "\" & "Fiches Excel"
MkDir NomRep2
NomRep3 = Worksheets("Feuil1").Cells(1, 1).Value & "\" & "Fiches PDF"
MkDir NomRep3
End Sub
Private Sub CommandButton3_Click()
NomRep1 = Worksheets("Feuil1").Cells(1, 1).Value & "\" & "Données Excel"
MkDir NomRep1
NomRep2 = Worksheets("Feuil1").Cells(1, 1).Value & "\" & "Fiches Excel"
MkDir NomRep2
NomRep3 = Worksheets("Feuil1").Cells(1, 1).Value & "\" & "Fiches PDF"
MkDir NomRep3
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub 'limité à colonne 1
If InStr(Target.Address, ":") <> 0 Then Exit Sub 'sélection de plusieurs cellules
If MsgBox("Ouvrir le fichier " & Cells(1, 1).Value & "\" & Target, vbYesNo, "Ouvrir un fichier") = vbYes Then _
    Workbooks.Open Cells(1, 1).Value & "\" & Target
End Sub
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

le bouton 1 : il me choisi mon repertoire de travail et m'affcihe les fichiers excel
le bouton 2&3 : ils me créent 3 sous repertoires.
 

Épaf

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

Staple1600 a dit:
Ainsi il y a bien création d'un sous répertoire dans le répertoire choisi au départ
Hello Slape, Derrière un bouton il n'aura pas le nom du dossier sélectionné. C'est pourquoi je le place en A1 dans les fichiers transmis, ainsi il peut le récupérer ;)
Ce coup-ci... à ce soir
Bon aprem'
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

bon ça marche bien une fois mais deux fois ça ne marche plus car les sous-repertoires étant déjà crées, ça pose problème au programme : à chaque fois il veut recréer les ous repertoires que je lui ai indiqué, il y a une ligne de code pour lui dire, voilà, si les sous-repertoires sont dejà là, et bien tu passes ton chemin.?
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

bon j'ai utilisé une boucle if ... then et mon endif final, ça marche bien.
 

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

bon moi en fait ça ne serait que la feuille 1 de tous les documents présents dans un repertoire donné que je voudrais mettre en pdf ...

voilà ce que j'ai trouver :

Code:
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="C:\Documents and Settings\mimi\dossier\NomClasseur.pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
Ce que je vais faire, c'est l'affecter à un bouton mais, j'explique :

dans le repertoire d:\fichiers, il y a mes fichiers excel avec mes 3 feuilles (dont la premiere m'interesse car elle possède un graphique), je veux que la feuille 1 de tout ces fichiers s'exporte en pdf et aille dans un repertoire d:\fichiers_pdf.


Au final, j'aurais donc, mon repertoire d:\fichiers avec mes fichiers xcl complets et dans le repertoire d:\fichiers_pdf, que les feuille1 mais en pdf.

Est ce possible ? -> bon j'ai pas trouvé comment faire ...
 
Dernière édition:

alucard_xs

XLDnaute Occasionnel
Re : Trouver les fichiers en mode dynamique ?

au pire j'ai trouvé ce prog mais par contre, je ne sais pas comment l'utiliser et pas sur qu'il fonctionne.

Code:
Private Sub DéplacementFeuillePlannig()
' Donne le chemin actuel
vRépertoireActuelle = ThisWorkbook.Path
' donne le nom de la feuille active actuelle
vFeuilActuelle = ActiveSheet.Name
' Déplace la feuille Actuelle active
Sheets(vFeuilActuelle).Move
' Sauvegarde le nouveau fichier
ActiveWorkbook.SaveAs Filename:=vRépertoireActuelle & "\Planning semaine\" & vFeuilActuelle
End Sub
il doit copier la feuille 1 d'une fichier excel pour la mettre dans un autre fichier excel d'un autre repertoire, ensuite il ne resterait qu'à transformer en pdf ...

je prefererai vtrouver une méthode plus direct comme mon message précedent ... enfin bon ...

Meric de m'aider ;)
 

Discussions similaires


Haut Bas