Boucle ouverture fichier

Bonjour à tous,

j'utilise le code suivant que j'ai trouvé pour ouvrir plusieurs fichiers qui se trouvent dans un même dossier. A termes, il y aura 30 fichiers dans ce dossier. J'ai un pb avec ma boucle car elle m'ouvre bien les fichiers que j'ai pour l'instant (3 sur les 30) mais une fois quelle a ouvert les 3 fichiers et refermés, elle recommence. Le but est de récupérer des relevés de mesures de pièces d'une colonne et de les coller dans une colonne d'un autre fichier (cette partie fonctionne). C'est le fait de stopper après avoir ouvert tous les fichiers!!

Programmation sous Excel 2007, VBA, windows XP.

Voici le code (j'ai supprimé la partie de copier/coller d'un fichier à l'autre. La variable a, me permet de me décaller de 5 colonnes pour coller les infos du fichier suivant...

Sub ouvrir_fichiers()
AffecterVariables2
Application.ScreenUpdating = False
Dim fichier As String, chemin As String
Dim Wb As Workbook

For a = 12 To 157
chemin = "C:\Documents and Settings\k004418\Bureau\UGV VIPER\Suivi MMT\fichier xls\"
fichier = Dir(chemin & "*.xls")

Do While fichier <> ""
Set Wb = Workbooks.Open(chemin & fichier)

--> c'est à ce moment qu'il fait le copier/coller d'un fichier à l'autre

Windows(fichier).Activate
'fermer le fichier Excel sans sauvegarder
Application.CutCopyMode = False
ActiveWorkbook.Close savechanges:=False

a = a + 5
Set Wb = Nothing
fichier = Dir

Application.ScreenUpdating = True

Loop
Next

End Sub

Sub AffecterVariables2()
LeFichier = ThisWorkbook.Name
End Sub

Merci pour votre aide.

4 réponses

  1. merci

    je vais ce que je peux faire avec

    cdt
    0
    1. bonjour

      j'ai une nouvelle question en fait
      les fichiers que je récup arrive au fur et à mesure du coup j'ai quand même un beug car la macro marche super mais avec 30 fichiers, limite que je lui est fixé (a=12 to 157).

      est-ce que je peux rajouter une condition du genre If... ??

      car sinon je dois faire des copier/coller à la main...

      d'avance merci
      0
      1. Contributeur
        Pour que ça marche correctement, il faudrait que tu puisses compter le nombre de fichiers présents dans ton dossier.

        En cherchant un peu sur le net, j'ai trouvé ceci.

        A adapter selon ce que tu souhaites faire, mais c'est une piste.

        Cordialement.
        0
    2. du coup ce serait à cause de ça !!

      ok, ben comme j'ai que 3 fichiers, je vais en créer 27 vu que au final il doit ouvrir 30 fichiers c pour ça que mon "a" va jusqu'à 157, c'est la dernière colonne où il colle les infos.

      je vais tenter

      merci chossette !!^^
      0
      1. sa marche SUPER

        merci, moi qui cherché dans tout les sens et c'était tellement nul comme erreur !!
        0
      2. Contributeur
        Ce sont souvent les erreurs les plus évidentes qui nous font chercher pendant des heures.
        0
    3. Contributeur
      Bonjour,

      c'est normal qu'il te les parcourt plusieurs fois, vu que ton a va de 12 à 157 et est incrémenté de 5 en 5. Du coup, tant que ton a est inférieur à 157, il teste pour ouvrir des fichiers.

      Si tu teste sur 3 classeurs, tu devrais peut être réduire ton For a=12 To 157.

      Cordialement.
      0