VBA : pb CAPACITE (XLS*2003 - compilation DATAS plusieurs ONGLETS sur ong. RECAP

zebanx

XLDnaute Accro
Bonjour,

J'ai récupéré un code très pratique pour compiler des informations de plusieurs onglets sur un seul onglet RECAP mais le code, sous excel 2003, ne fonctionne pas pour un pb de capacité pour le moment.

Pourriez-vous m'aider s'il vous plait ?

Vous en remerciant, bonne journée
td
 

Pièces jointes

  • FICHIER_compiler onglet 2003 2.zip
    494.7 KB · Affichages: 39

Paf

XLDnaute Barbatruc
Re : VBA : pb CAPACITE (XLS*2003 - compilation DATAS plusieurs ONGLETS sur ong. RECA

Bonjour

J'ai cru que les 65536 lignes d'excel étaient dépassées. Mais non (on s'en approche :57226), c'est un problème de capacité, mais de variables. sur des versions plus récentes d'Excel il y aurait eu le même soucis.

modifier

Code:
Dim dlgR As Integer, dlgi As Integer
en
Code:
Dim dlgR As Long, dlgi As Long

Par ailleurs, si vos feuilles n'ont que deux colonnes de données, inutile de copier 10 colonnes

modifier

.Range("a2:j" & dlgi).Copy Sheets("RECAP").Range("a" & dlgR + 1)

en

.Range("a2:B" & dlgi).Copy Sheets("RECAP").Range("a" & dlgR + 1)

Bonne suite
 

zebanx

XLDnaute Accro
Re : VBA : pb CAPACITE (XLS*2003 - compilation DATAS plusieurs ONGLETS sur ong. RECA

Bonjour,

Merci pour vos réponses rapides !

Le fait de modifier par "As long" apporte cependant un autre problème (erreur 1004).

Peut être que "as long" devrait être capé à 65000 lignes par exemple (fichier 2003) mais comment l'intégrer dans ce cas

Sub transfert()
Dim dlgR As Long, dlgi As Long
Dim i As Byte
For i = 1 To Worksheets.Count
If UCase(Sheets(i).Name) <> "RECAP" Then
dlgR = Sheets("RECAP").Range("a" & Rows.Count).End(xlUp).Row
With Sheets(i)
dlgi = .Range("a" & Rows.Count).End(xlUp).Row
.Range("a2:j" & dlgi).Copy Sheets("RECAP").Range("a" & dlgR + 1)
End With
End If
Next
End Sub


Merci par avance pour votre aide, cdlt
 

Paf

XLDnaute Barbatruc
Re : VBA : pb CAPACITE (XLS*2003 - compilation DATAS plusieurs ONGLETS sur ong. RECA

Re,

le fait de s'arrêter à 65536 lignes si on a une version Excel inférieure à 2007 n'est pas un problème. on peut le gérer avec un code du genre
Code:
If Val(Application.Version) < 12 Then
    'code
Else
    ' autrecode
End If

Mais que faire des lignes restantes ?

A+
 

Herdet

Nous a quitté
Repose en paix
Re : VBA : pb CAPACITE (XLS*2003 - compilation DATAS plusieurs ONGLETS sur ong. RECA

Bonjour,

J'ai récupéré un code très pratique pour compiler des informations de plusieurs onglets sur un seul onglet RECAP mais le code, sous excel 2003, ne fonctionne pas pour un pb de capacité pour le moment.

Pourriez-vous m'aider s'il vous plait ?

Vous en remerciant, bonne journée
td
Bonjour,
Une solution qui fonctionne bien en supprimant toutes les lignes vides avant collage.
Recap à 57226 lignes

Code:
Sub transfert()
    'Macro Dan pour CecileCosma - 20/09/12
    Dim dlgR, dlgi As Double
    Dim i As Byte
    Application.ScreenUpdating = False
    Sheets("Recap").Select
    Rows("2:65536").Delete Shift:=xlUp
    On Error GoTo FIN
    For i = 1 To Worksheets.Count
        If UCase(Sheets(i).Name) <> "RECAP" Then
            dlgR = Sheets("RECAP").Range("a" & Rows.Count).End(xlUp).Row
            With Sheets(i)
                dlgi = .Range("a" & Rows.Count).End(xlUp).Row
                
                .Range("a2:j" & dlgi).Copy Sheets("RECAP").Range("a" & dlgR + 1)
            End With
        End If
    Next
FIN:
   
End Sub

Cordialement
Robert
 

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 183
Membres
103 152
dernier inscrit
Karibu