Ne pas arreter la macro avant le dernier onglet du classeur [Résolu/Fermé]

Signaler
Messages postés
7
Date d'inscription
mardi 5 mai 2015
Statut
Membre
Dernière intervention
17 septembre 2015
-
 apprenti_vba -
Bonjour,

Je souhaite modifier une macro qui me consolide plusieurs onglets en un seul. Seulement lorsqu'un onglet est vide, la macro ne "regarde" pas si l'onglet suivant contient des données et s'arrete. Ma conso est alors incomplete et un message d'erreur apparait.

Que dois je rajouter ?

Merci pour votre aide

4 réponses

Messages postés
15266
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
6 août 2020
1 320
Bonjour a vous deux,

Sub consolide_ongletsCollageSpecial()
    'On Error Resume Next
    Sheets("base").[A2:N65000].ClearContents

    For s = 2 To Sheets.Count
        nlig = Sheets(s).[A65000].End(xlUp).Row - 5
        If nlig > 0 Then
            ncol = Sheets(s).[A6].CurrentRegion.Columns.Count
            Sheets(s).[A6].Resize(nlig, ncol).Copy
            [A65000].End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
        End If
    Next s
    Range("A1").Select
End Sub
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57031 internautes nous ont dit merci ce mois-ci


ça marche !!!
merci beaucoup, plus qu'à étudier ça
Messages postés
347
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
2 juin 2015
103
Salam l'apprenti.

Cela dépend de comment est construite la logique de ton code.
Peux-tu poster ton code ici pour qu'on l'examine ensemble ?

:)

"Repousse le mal par le bien; et voilà que celui avec qui tu avais une animosité devient tel un ami chaleureux" (Coran)
"Celui qui ne sait pas partager est infirme de ses émotions". (Marc Levy)
Messages postés
7
Date d'inscription
mardi 5 mai 2015
Statut
Membre
Dernière intervention
17 septembre 2015

Voilà ce que j'ai

Sub consolide_ongletsCollageSpecial()
Sheets("base").[A2:N65000].ClearContents

For s = 2 To Sheets.Count
Sheets(2).Select False
nlig = Sheets(s).[A65000].End(xlUp).Row - 5
ncol = Sheets(s).[A6].CurrentRegion.Columns.Count
Sheets(s).[A6].Resize(nlig, ncol).Copy
[A65000].End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Next s
On Error Resume Next
Range("A1").Select
End Sub
Messages postés
347
Date d'inscription
mardi 7 octobre 2008
Statut
Membre
Dernière intervention
2 juin 2015
103
Je n'ai pas bien compris le but de ce code. Peux-tu nous en expliquer la logique càd ce que tu veux faire en fait ?
Messages postés
7
Date d'inscription
mardi 5 mai 2015
Statut
Membre
Dernière intervention
17 septembre 2015

J'ai 20 onglets que je dois les consolider sur 1 seul. Et lorsqu' une feuille ne contient pas de données, la macro s'arrete et ne me rappatrie pas les données des feuilles suivantes. Si toutes les feuilles contiennent des données ce code fonctionne bien mais ce n'est peut etre pas le meilleur

J'ai 20 onglets que je dois les consolider sur 1 seul. Et lorsqu' une feuille ne contient pas de données, la macro s'arrete et ne me rappatrie pas les données des feuilles suivantes. Si toutes les feuilles contiennent des données ce code fonctionne bien mais ce n'est peut etre pas le meilleur