Probleme de macro qui ne va pas "chercher" tous les fichiers

Résolu/Fermé
fystina Messages postés 5 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 21 mars 2013 - Modifié par fystina le 21/03/2013 à 09:30
fystina Messages postés 5 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 21 mars 2013 - 21 mars 2013 à 16:58
Bonjour,


Débutante en macro, je cherchais une macro qui puissent me copier mes 4 fichiers excel avec un nombre de colonnes identiques mais un nombre de lignes différents pour les regrouper à la suite sur un seul fichier excel. j'ai trouver une macro sur ce site qui fonctionne très bien mais qui ne copie que 2 fichiers sur 4 !
je ne sais pas si c'est un probleme de memoire car le 3e fichier est trop lourd ou si c'est un probleme que je peux résoudre sur la macro..

voici la macro :

Sub regroupe()
Dim chemin As String ' classeur regroupé
Dim rep As String ' répertoire à traiter
Dim fic As String ' classeur regroupé
Dim ligne As Long ' ligne écriture
Dim nbc As Integer ' nombre de classeurs
Dim nbf As Integer ' nombre de feuilles
Dim nbl As Integer ' nombre de lignes
Dim c As Integer ' nombre de colonnes
Dim l As Long ' ligne lecture
Dim Wf As Worksheet ' feuille regroupement
Dim Wl As Worksheet ' feuille regroupée
rep = ThisWorkbook.Path & "\"
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
On Error GoTo fin

'ChDir _
'"T:\...."
'Workbooks.Open Filename:= _
'"T:\..."


Set Wf = ThisWorkbook.ActiveSheet ' variable feuille groupe
Wf.Cells.ClearContents
nbc = 5: nbf = 3 ' initialisation variables
ligne = 1
fic = Dir(rep & "*.xml") ' recherche fichiers
While fic <> ""
If fic <> ThisWorkbook.Name Then
chemin = rep & fic ' chemin fichiers
Workbooks.Open chemin, 0 ' ouverture
Set Wl = ActiveWorkbook.Sheets(1)
nbl = Wl.UsedRange.Rows.Count
c = Wl.UsedRange.Columns.Count
If ligne > 1 Then l = 2 Else l = 1 ' une seule fois le titre
Wl.Cells(l, 1).Resize(nbl, c).Copy Destination:=Wf.Cells(ligne, 1)
ligne = ligne + nbl - l + 1
nbf = nbf + 1
ActiveWorkbook.Close SaveChanges:=False ' Fermeture du classeur
nbc = nbc + 1
End If
fic = Dir
Wend
fin:
MsgBox nbc & " classeurs regroupés avec " & nbf & " feuilles et " & ligne & " lignes"
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub '



Je ne sais pas comment résoudre le problème , pouvez vous me venir en aide svp !

ps : mon 1er fichier comporte 15000 lignes
le 2e 29000 lignes
le 3e 42200 lignes
le 4e 13000 lignes
A voir également:

5 réponses

f894009 Messages postés 17229 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 21 janvier 2025 1 712
21 mars 2013 à 10:00
Bonjour,

Si excel2003 ou anterieur cela est normal, 65535 lignes de disponnibles.

Si excel 2007 et plus: mettez la ligne on error en commentaire pour avoir un message s'il doit y en avoir un.

A+
0
fystina Messages postés 5 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 21 mars 2013
21 mars 2013 à 11:05
Bonjour,

merci pour votre aide, il me semble que c'est excel 2007 et pourtant la macro bloque que sur ce fichier qui comporte 42200 lignes..

comme je débute je n'ai pas compris quel ligne je dois mettre en error.. pouvez vous me détaillé cela.

merci,
0
Le Pingou Messages postés 12230 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 15 janvier 2025 1 454
21 mars 2013 à 14:59
Bonjour,
Juste au passage, est-ce que le classeur cible (ensemble des autres) à bien une extension : *.xlsm oui / Non ?
Avez-vous un message d'erreur ?
Pourquoi les classeurs sources ont une extension *.xml ?

0
fystina Messages postés 5 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 21 mars 2013
21 mars 2013 à 15:55
bonjour le pingou :)
-oui le fichier qui va regrouper les 4 est en xlsm
-non je n'ai aucun message qui apparait
-les classeurs sources sont en xml car ce sont des extractions mais j'ai essayer en essayant de les enregistrer sous xlsx et ca fai la meme chose..:(
0
f894009 Messages postés 17229 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 21 janvier 2025 1 712
21 mars 2013 à 15:45
Bonjour le pingou,

fystina: pouvez-vous mettre le fichier excel ou vous avez le VBA (macro) sans les mise a jour des fichiers importes sur: https://www.cjoint.com/ ,ne pas oublier de copier le lien cree sur votre prochain post.

A+
0
fystina Messages postés 5 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 21 mars 2013
21 mars 2013 à 16:08
Re- bonjour :)

voici le lien : https://www.cjoint.com/?3CvqhF9moIl

A++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17229 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 21 janvier 2025 1 712
21 mars 2013 à 16:43
Re,

Dim nbl As Long ' nombre de lignes en Long au lieu de Integer (entre -32 768 et 32 767)

le 3e 42200 lignes----->superieur a 32767 donc erreur, comme vous avez un on error goto, pas de message d'erreur: depassement de capacite.

A+
0
fystina Messages postés 5 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 21 mars 2013
21 mars 2013 à 16:58
excellent ! ca fonctionne trés bien ! je te remercie bcp !! ;)
merci à le pingou aussi de s'etre interessé au sujet !
a bientot !
0