Boucle ouverture fichier

Fermé
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012 - 20 juin 2011 à 10:55
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012 - 24 juin 2011 à 09:10
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.
A voir également:

4 réponses

chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
20 juin 2011 à 14:53
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
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012
20 juin 2011 à 15:06
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
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012
20 juin 2011 à 15:12
sa marche SUPER

merci, moi qui cherché dans tout les sens et c'était tellement nul comme erreur !!
0
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
20 juin 2011 à 15:18
Ce sont souvent les erreurs les plus évidentes qui nous font chercher pendant des heures.
0
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012
23 juin 2011 à 17:49
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
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 308
23 juin 2011 à 18:48
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
nus Messages postés 14 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 3 février 2012
24 juin 2011 à 09:10
merci

je vais ce que je peux faire avec

cdt
0