problème de boucle sur vba excel

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

mados

XLDnaute Nouveau
bonjour à tous
je suis nouveau sur ce forum mais grâce à lui j'ai pu bien avancer sur un travail qui m'a été donné il y a deux jours,
je suis à un poile de l'achever et ce grâce à vous j'espère,
problématique: importer des données de plusieurs fichiers excel dont j'ai pas le nom mais qui ont la même structure et qui sont dans un même dossier sur un fichier de synthèse puis placer les fichiers traité dans un autre dossier.

problème: j'avais figer les cellules et range de destination et donc à la fin je ne trouve que les données du dernier fichiers trouvé sur le dossier.
pour mieux comprendre voici le code utilisé et en pièce jointes trois exemples fichiers sources et le fichier de synthèse

code


Code:
Sub test2()
    Dim GestionFichier As New Scripting.FileSystemObject
    Dim FichierTexte As Scripting.TextStream
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim Fichier$
    

   ' Fichier va contenir le nom du premier fichier rencontré dans F:\atelier
    Fichier = Dir("C:\Users\maslimi.ALLIANCES\Desktop\TIMESHEET MOD\consolidation\non traités\*.xlsx")
    ' Tant que Fichier est différent de vide (Tant qu'il y a un fichier à lire, simplement)
    While Fichier <> ""
         
        Set wb = Workbooks.Open("C:\Users\maslimi.ALLIANCES\Desktop\TIMESHEET MOD\consolidation\non traités\" & Fichier)
        Set ws = wb.Worksheets(1)

    Windows(Fichier).Activate
    Range("B1:K1").Select
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("A2:A22").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
    Application.DisplayAlerts = False
    
    Windows(Fichier).Activate
    Range("B3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("B2:B22").Select
    ActiveSheet.Paste
    Application.DisplayAlerts = False
    
    Windows(Fichier).Activate
    Range("E3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("C2:C22").Select
    ActiveSheet.Paste
    Application.DisplayAlerts = False
    
    Windows(Fichier).Activate
    Range("B5").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("D2:D22").Select
    ActiveSheet.Paste
    Application.DisplayAlerts = False
    
    Windows(Fichier).Activate
    Range("A9:A21").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("E2:E14").Select
    ActiveSheet.Paste Link:=True
    Application.DisplayAlerts = False
    


    Windows(Fichier).Activate
    Range("A22:A29").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("E15:E22").Select
    ActiveSheet.Paste Link:=True
    Application.DisplayAlerts = False
    
    Windows(Fichier).Activate
    Range("B9:B29").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("F2:F22").Select
    ActiveSheet.Paste
    Application.DisplayAlerts = False
    
    Windows(Fichier).Activate
    Range("C9:C29").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("G2:G22").Select
    ActiveSheet.Paste
    Application.DisplayAlerts = False
    
    Windows(Fichier).Activate
    Range("D9:D29").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("H2:H22").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
    Application.DisplayAlerts = False
    
    Windows(Fichier).Activate
    Range("E9:E29").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("I2:I22").Select
    ActiveSheet.Paste
    Application.DisplayAlerts = False
    
    Windows(Fichier).Activate
    Range("K9:K29").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("consolidation.xlsm").Activate
    Range("J2:J22").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
    Application.DisplayAlerts = False

    wb.Save
    wb.Close

    Name "C:\Users\maslimi.ALLIANCES\Desktop\TIMESHEET MOD\consolidation\non traités\" & Fichier As "C:\Users\maslimi.ALLIANCES\Desktop\TIMESHEET MOD\consolidation\traités\" & Fichier


    Fichier = Dir
    
    
    
    
    
    ' Et on revient dans la boucle en affichant le fichier qu'on vient de lire...
        ' S'il n'y avait qu'un seul fichier dans le dossier, il sortirait tout de suite maintenant.
    Wend

End Sub


j'espère que vous allez pouvoir m'aider
et merci d'avance
 

Pièces jointes

Dernière édition:
- 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

Réponses
18
Affichages
315
Réponses
10
Affichages
547
Réponses
2
Affichages
281
Réponses
17
Affichages
1 K
Retour