Ne pas arreter la macro avant le dernier onglet du classeur

Résolu/Fermé
apprenti_vba Messages postés 7 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 17 septembre 2015 - 5 mai 2015 à 12:44
 apprenti_vba - 15 mai 2015 à 14:16
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

A voir également:

4 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
15 mai 2015 à 14:08
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
apprenti_vba
15 mai 2015 à 14:16
ça marche !!!
merci beaucoup, plus qu'à étudier ça
0
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
Modifié par redaiwa le 5/05/2015 à 13:14
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)
0
apprenti_vba Messages postés 7 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 17 septembre 2015
5 mai 2015 à 13:23
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
0
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
5 mai 2015 à 16:57
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 ?
0
apprenti_vba Messages postés 7 Date d'inscription mardi 5 mai 2015 Statut Membre Dernière intervention 17 septembre 2015
7 mai 2015 à 07:54
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
0
apprenti_vba
15 mai 2015 à 08:07
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
0