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

Problème avec une boucle de manipulation d'un dossier de classeurs excel

  • Initiateur de la discussion Initiateur de la discussion vbauser92
  • 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 !

V

vbauser92

Guest
Bonjour,

Je suis en train de faire un bout de code pour récupérer dans un même classeur des reportings individuels saisis pour chacun dans un classeur différent (dans le sous-répertoire Reportings). Et j'ai visiblement des problèmes avec l'ouverture ou l'activation avec les arborescence précisées. Pouvez-vous me dépanner ? Je pense qu'il y a un problème dû au fait que le classeur de consolidation (Détail_Pilotage_CONSO.xlms)est dans un autre répertoire, mais je ne m'en sors pas.

' Placement dans le répertoire des reportings individuels
ChDir "G:\Missions\Reporting DIR\Reportings"
ClasseurPersonnel = Dir("G:\Missions\Reporting DIR\Reportings\*.xlsx")
While Len(ClasseurPersonnel) > 0
Workbooks.Open ClasseurPersonnel
DerniereLigne = ActiveSheet.UsedRange.Rows.Count
ActiveSheet.Range("A7:AB" & DerniereLigne).Copy
Workbooks("G:\Missions\Reporting DIR\Détail_Pilotage_CONSO.xlsm").Activate
DebutNomFichier = ActiveSheet.UsedRange.Rows.Count + 1
ActiveSheet.Range("A" & ActiveSheet.UsedRange.Rows.Count + 1).Select
ActiveSheet.Paste
Range("AC" & DebutNomFichier & ":AC" & ActiveSheet.UsedRange.Rows.Count) = ClasseurPersonnel
Workbooks(ClasseurPersonnel).Close
ClasseurPersonnel = Dir
Wend


Merci d'avance
 
Re : Problème avec une boucle de manipulation d'un dossier de classeurs excel

Salut,

Ton code tel qu'il est devrait fonctionner.

je vois qu'un problème de presse papier trop rempli.


tu as quel numéro d'erreur pendant l'éxécution du code ?


A+++
 
Re : Problème avec une boucle de manipulation d'un dossier de classeurs excel

Merci pour ta réponse.

En fait, j'avais un code erreur 9 la semaine dernière, et là c'est encore plus bizarre ce que j'ai désormais : le 1er fichier est trouvé (le nom de la valeur est correcte), mais j'ai une erreur 1004 : le fichier "xxx.xlsx" (le nom est bon) est introuvable...

Donc en fait il le trouve, mais ensuite il ne le trouve plus... J'en perds mon latin.
 
Re : Problème avec une boucle de manipulation d'un dossier de classeurs excel

Bonjour vbauser, Bonjour Zon,

Je pense que c'est un problème de chemin des fichiers, personnellement j'évite les ChDir et je mets systématiquement le chemin complet des fichiers à ouvrir
D'autre part, si tu travailles avec plusieurs fichiers, il peut être délicat d'utiliser Activesheet seul, c'est la feuille active du classeur actif, préciser le classeur évite certaines déconvenues

un essai

Code:
' Placement dans le répertoire des reportings individuels
ClasseurPersonnel = Dir("G:\Missions\Reporting DIR\Reportings\*.xlsx")
While Len(ClasseurPersonnel) > 0
Set CP = Workbooks.Open ("G:\Missions\Reporting DIR\Reportings\" & ClasseurPersonnel)
        DerniereLigne = CP.ActiveSheet.UsedRange.Rows.Count
        CP.ActiveSheet.Range("A7:AB" & DerniereLigne).Copy
        with Workbooks("G:\Missions\Reporting DIR\Détail_Pilotage_CONSO.xlsm")
.activate
        DebutNomFichier = .ActiveSheet.UsedRange.Rows.Count + 1
        .ActiveSheet.Range("A" & .ActiveSheet.UsedRange.Rows.Count + 1).Select
        .ActiveSheet.Paste
        .activesheet.Range("AC" & DebutNomFichier & ":AC" & .ActiveSheet.UsedRange.Rows.Count) = ClasseurPersonnel
        end with
Workbooks(ClasseurPersonnel).Close
        ClasseurPersonnel = Dir
  Wend
 
Re : Problème avec une boucle de manipulation d'un dossier de classeurs excel

Salut vous 2,

G:\ => c'est un chemin d'accés réseau ? pas toujours évident de travailler en réseau.


Otes la partie du copier coller de ton code , est ce que tu as la même erreur.


Il reste à travailler en sur fichier fermé.
REQUIS:
dans l'exemple ci dessous on récupère la plage A7:AB2500 de la feuille Feuil1 du fichier classeurpersonnel que l'on met dans la feuilletest du classeur actif.

Pour ce qui est de mettre les données à la suite des unes des autres, on verra si le test est concluant.

ce qui devrait donner 🙁le nom des feuilles pour le test doit être identique )


Code:
ClasseurPersonnel = Dir("G:\Missions\Reporting DIR\Reportings\*.xlsx")
While Len(ClasseurPersonnel) > 0

recupval "G:\Missions\Reporting DIR\Reportings\",ClasseurPersonnel,"Feuil1","A7:AB2500","Feuilletest"

        ClasseurPersonnel = Dir
  Wend





Sub Recupval(Chemin$, NomFichier$, NomFeuille, Plage$, F As Worksheet, Optional Destin$, Optional J&, Optional K&)
  If Destin = "" Then
    With F.Range(Plage)
      .Formula = "='" & Chemin & "[" & NomFichier & "]" & NomFeuille & "'!" & Plage
      .Value = .Value
        End With
  Else
    With F.Range(Destin)
      .Formula = "='" & Chemin & "[" & NomFichier & "]" & NomFeuille & "'!" & Plage
      .Value = .Value
      T = .Value
     .Offset(J, K).Resize(UBound(T), UBound(T, 2)) = T
    End With
  End If
End Sub
 
Re : Problème avec une boucle de manipulation d'un dossier de classeurs excel

@tototiti2008
Merci pour ton aide. En revanche, ça bute sur
with Workbooks("G:\Missions\Reporting DIR\Détail_Pilotage_CONSO.xlsm")
Erreur 9 et le debug indique <L'indice n'appartient pas à la sélection>

@Zon
Thanks. Pour répondre à ta question, à court terme G est juste une partition de mon disque dur, donc on est en local, mais à terme je devrais déposer ça effectivement sur un répertoire partagé en réseau. J'espère que ça ira
J'essaie ta proposition dans la journée et je te dis si ça m'a débloqué. En tout cas merci.

Ce qui est quand même bizarre, c'est que ça a fonctionné hier une fois (j'ai tout basculé en fichier .xls 2003), mais que ce matin ça rebloque à nouveau...
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…