Probleme de macro qui ne va pas "chercher" tous les fichiers
Résolu
fystina
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
fystina Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
fystina Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Probleme de macro qui ne va pas "chercher" tous les fichiers
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Explorateur de fichiers - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Gestionnaire de fichiers - Télécharger - Gestion de fichiers
5 réponses
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+
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+
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,
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,
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 ?
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 ?
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+
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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question