Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[résolu ]recherche de dossier, commande Dir et ChDir

  • Initiateur de la discussion Initiateur de la discussion scaleo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

scaleo

XLDnaute Nouveau
/!\ Sujet Résolu /!\


poste d’origine, à ne plus prendre en compte :
 
Dernière édition:
Re : recherche de dossier, commande Dir et ChDir

Bonsoir scaleo,

Pourquoi recréer quelque chose qui existe déjà ?

Voir ceci :
VB:
 Do While sPath = ""
     Set Fd = Application.FileDialog(msoFileDialogFolderPicker)
     With Fd
         If .Show = -1 Then
             sPath = .SelectedItems.Item(1) & "\"
         End If
     End With
 Loop

ou alors :

VB:
Sub RechercheDossier()
 Dim oSh As Object, pFile As Object, pIni$
 Set oSh = CreateObject("Shell.Application")
 On Error Resume Next
 Set pFile = oSh.BrowseForFolder(0&, "Sélectionnez un dossier", &H40 + &H200 + &H4000, "C:\Users\.....\Desktop\")
 '&H200 permet d'afficher ou non Création de dossier
 '&H4000  permet d'afficher ou non les fichiers dans les répertoires
 On Error GoTo 0
 If Not pFile Is Nothing Then
     MsgBox pFile.Items.Item.Path & "\"
 End If
End Sub

Cela permet de rechercher le dossier et sous-dossier

A te relire

Martial
 
Re : recherche de dossier, commande Dir et ChDir

Je viens de tester la solution 2 mais apparemment je ne me suis pas fais bien comprendre.

elle m'ouvre une fenêtre où c'est l'utilisateur qui doit chercher lui même. Ce que je cherche , c'est que ça soit Excel qui cherche lui même le dossier.



je vais tester la solution 1.
 
Dernière édition:
Re : recherche de dossier, commande Dir et ChDir

Je viens de teste la solution 2 mais apparemment je ne me suis pas fais bien comprendre.

elle m'ouvre une fenêtre où c'est l'utilisateur qui doit chercher lui même. Ce que je soit c'est que ça soit Excel qui cherche lui même le dossier.

il à en mémoire le chemin d’accès du dossier racine ( nommé ici "répertoire" ) , et en fonction du numéro de dossier et de sous-dossier, il effectue la recherche du ficher Excel désiré.

je vais tester la solution 1.

édit: j'ai oublier de préciser : je suis en mode "Option Explicite" et ce fichier est destiné à être utilisé avec Excel 2003 et 2010
édit 2: je n'arrive pas a faire fonctionner la solution 1
 
Re : recherche de dossier, commande Dir et ChDir

Bonsoir scaleo,

Que cherche-tu à faire, ouvrir le fichier ? Si c'est ça, tu peux peut-être utiliser :

VB:
Workbooks.Open "C:\Users\.....\Desktop\repertoire\" & dossier_box & "\" & sous_dossier_box & "\Classeur1.xlsx"

Sinon que veux-tu importer et comment ?

A+

Martial
 
Re : recherche de dossier, commande Dir et ChDir

/!\ sujet mis à jour /!\


message d'origine a ne plus prendre en compte :
 
Dernière édition:
Re : recherche de dossier, commande Dir et ChDir

Bonsoir scaleo,

Pas sûr d'avoir tout compris, car un peu fouillis (un code dans ton fichier puis un autre code sur le post).

Peut être en remplaçant le End par Exit Sub.

A voir !!!!!

A+

Martial
 
Re : recherche de dossier, commande Dir et ChDir

c'est vrai je l'avoue c'est "un peu" le bor*el.

j'ai mis à jour les précédant post, et je vais ré-expliquer mon problème avec le code d'origine, comme ça plus de confusion possible.

donc j'ai une marco qui va copier des cellule dans un classeur Excel. Ce dernier doit resté fermer pendant la copie. Ce fichier Excel est ranger comme dans le nouveau dossier joint.

la macro compare les 4 premiers caractères des nom de dossiers dans le répertoire avec le numéro de projet.

une fois que le dossier est trouvé, la macro cherche le dossier qui à le même nom que la valeur dans la revision_box.

enfin elle cherche tous les fichiers qui s'appelle "classeur1.xls", copier une cellule en particulier sans ouvrir le document, et la colle dans mon classeur actuel .

voila en gros le principe.

donc mon chef et moi avons réussie à coder la macro, elle marche presque totalement, le seul hic, c'est au moment de choisir la révision, la macro plante, elle ne trouve pas le chemin.

ce qui est bizarre, c'est que ça marche pour un projet en particulier, et les autres impossible de trouver les révision.

dans les fichiers joints, j'ai virée les infos confidentielles et j'ai adapter le code à l'exemple

donc mes questions :

1- comment coder pour que la macro chercher les dossier correspondant au révision ?

2-en cas de chemin introuvable, comment arrêter le module en cours (exit sub quitte le sub en cours, mais le programme continue lui, et forcément il plante ) sans pour autant quitter l'userform ( end quitte tout, le sub , le module et l'userform)
 

Pièces jointes

Re : recherche de dossier, commande Dir et ChDir

Bonsoir scaleo,

Je ne suis pas très calé pour ce genre de question.

Mais j'ai essayé de suivre ton raisonnement. Plusieurs questions :

- Si tu as plusieurs fichiers Classeur1.xlsx, dans plusieurs sous-répertoire cela t'indiquera la valeur du dernier fichier trouvé (donc dernier sous-répertoire)

- Pourquoi utiliser :
VB:
DataFileName = "Classeur1.xls "
    
                    '322
    donnee = GetInfoFromClosedFile(ItemAlternativeName, "Classeur1.xls", "Feuil1", "c4")
et ne pas utiliser
VB:
DataFileName = "Classeur1.xls "
    
                    '322
    donnee = GetInfoFromClosedFile(ItemAlternativeName, DataFileName, "Feuil1", "c4")

- De plus, tu cherches un fichier .xls alors que tes fichiers sont en .xlsx (sûrement pour les exemples, mais bon ...)

A+

Martial
 
Re : recherche de dossier, commande Dir et ChDir

Je ne suis pas très calé pour ce genre de question.

moi aussi je te rassure, j'ai tout appris sur le tas.

- Si tu as plusieurs fichiers Classeur1.xlsx, dans plusieurs sous-répertoire cela t'indiquera la valeur du dernier fichier trouvé (donc dernier sous-répertoire)

en faite non , il explore le premier fichier, importe les donnée , passe au ficheir suivant et ainsi de suite. c'est vers la fin de module " step 322", il fait un genre de boucle ( me demande pas comment, c'est mon chef qui ma sorti ça )


il y a plusieurs fichier Excel dans les dossier A_A, B_A ....

- De plus, tu cherches un fichier .xls alors que tes fichiers sont en .xlsx (sûrement pour les exemples, mais bon ...)

effectivement, je me suis planté dans mon dossier d'exemple, ils devraient être en xls, format 97/2003
 
Re : recherche de dossier, commande Dir et ChDir

Re,


En fait, oui, cela écrase tes données de ton premier fichier. Donc que faut-il garder ? Les données du 1er fichier ou seules du 2ème ?

A+
 
Re : recherche de dossier, commande Dir et ChDir

ah zut, en faisant le trie, j'ai viré la boucle qui insérait une ligne quand il change de fichier, voila le code a remplacer:

Code:
            ' step 32

Sub GetInfosFromItemAlternative(ItemAlternativeName As String, iRow As Long)

    'Dim IAName As String
    Dim DataFileName As String
    Dim donnee As String
    Dim line As String
    


    
    DataFileName = "Classeur1.xls "
    
                    '322
    donnee = GetInfoFromClosedFile(ItemAlternativeName, "Classeur1.xls", "Feuil1", "c4")
    
    
   If iRow = 1 Then
        line = 8
        Cells(line, 7).Activate
        
    Else
        line = ActiveCell.Row + 1
        Cells(line, 7).Activate
        Selection.EntireRow.Insert
   
   End If
     ActiveSheet.Cells(8, line).Value = donnee
 
End Sub

sinon tu arrives à le faire marcher correctement? il t'indique "revision not found"?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…