Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Consolidation de données dans 1 onlget

  • Initiateur de la discussion Initiateur de la discussion oliverthekid
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

O

oliverthekid

Guest
Bonjour,

Je cherche à consolider des données présentent sur 100 onglets, et sur chacun des 100 onglets, ces données sont présentent de la cellule B3 à la cellule L16.
Je cherche ici a établir une liste sur 1 seul onglet.

Je vous ai joint un exemple!

Merci pour votre aide!
 

Pièces jointes

Dernière modification par un modérateur:
Re : Consolidation de données dans 1 onlget

Bonjour oliverthekid, le fil, le forum
Une proposition par macro:
VB:
Private Sub CommandButton1_Click()
Dim F As Worksheet, TabTemp()
Application.ScreenUpdating = False
For Each F In Worksheets
    If F.Name <> "Onglet de Consolidation" Then
        TabTemp = F.Range(F.Cells(3, 2), F.Cells(Rows.Count, 12).End(xlUp)).Value
        Sheets("Onglet de Consolidation").Cells(Rows.Count, 2). _
        End(xlUp)(2).Resize(UBound(TabTemp, 1), 11) = TabTemp
    End If
Next F
Application.ScreenUpdating = True
End Sub
Cordialement
 

Pièces jointes

Re : Consolidation de données dans 1 onlget

Bonjour,

@ DoubleZero: Est-il possible de changer la range, pour que la macro prenne toutes les données de la cellule B3 à la cellule B20, meme si il n'y a rien?

Merci!

Olivier.
 
Re : Consolidation de données dans 1 onlget

Bonjour, oliverthekid, Efgé 🙂, le Forum,

Sans certitude de pouvoir répondre au nouveau besoin 😱... un fichier exemple pourrait-il être joint ?

A bientôt 🙂.
 
Re : Consolidation de données dans 1 onlget

Pardon, voila la piece jointe!

Le but est d'avoir une liste (dans l'onglet "list") constituée de toutes les données présentes dans chaque onglet, de B3 à maximum l20.

Merci!
 

Pièces jointes

Re : Consolidation de données dans 1 onlget

Bonjour à toutes et à tous,

@ oliverthekid,

A mon grand regret, je n'ai encore trouvé aucune solution "propre" 🙁.

Si personne d'autre ne venait à la rescousse, je posterais mon "brouillon".

A bientôt 🙂.
 
Dernière édition:
Re : Consolidation de données dans 1 onlget

Bonjour Forum,

@ Efgé: Quand j'applique ton code, la liste s'arrete apres une vingtaine d'onglets, je n'arrive pas a comprendre pourquoi...
 
Re : Consolidation de données dans 1 onlget

Bonjour,

Merci pour ta réponse DoubleZero, effectivement ta nouvelle macro marche tres bien.
J'ai compris que tu avait changer la range de la copie des données (B20 au lieu de B65000), en revanche pourrais tu m'expliquer quel effet cela a eu d'enlever le End(x1Up) (voir ci dessous)?

merci!



Range(Sheets(s).[B3], Sheets(s).[B20].End(xlToRight)).Copy _
[B65000].End(xlUp).Offset(1, 0)

Range(Sheets(s).[B3], Sheets(s).[B65000].End(xlDown).End(xlToLeft)).Copy _
[B65000].End(xlUp).Offset(1, 0)
 
Re : Consolidation de données dans 1 onlget

Bonjour, le Fil, le Forum,

... en revanche pourrais tu m'expliquer quel effet cela a eu d'enlever le End(x1Up)...

Cette première ligne signifie que nous copions la plage de cellules allant de B3 à la dernière cellule renseignée de la colonne B.

Code:
Range(Sheets(s).[B3], Sheets(s).[B65000].End(xlUp).End(xlToRight)).Copy [B65000].End(xlUp).Offset(1, 0)

Cette seconde ligne fixe des limites : nous importons la plage de cellules allant de B3 à B20.

Code:
Range(Sheets(s).[B3], Sheets(s).[B20].End(xlToRight)).Copy [B65000].End(xlUp).Offset(1, 0)

Attention : j'aperçois une ânerie 😡 dans le fichier transmis hier, à 19h46. Il faut remplacer l'avant dernière ligne de code.

Au lieu de :

Code:
Application.ScreenUpdating = False

Ecrire :

Code:
Application.ScreenUpdating = True

Bonne continuation 🙂.
 
Re : Consolidation de données dans 1 onlget

Bonsoir le fil


Une variante de la variante
Code:
Sub a()
Dim s As Worksheet
Application.ScreenUpdating = False
For Each s In Worksheets
If Not s.Name Like "LIST" Then
s.[B2].CurrentRegion.Offset(1, 0).Copy Sheets("LIST").[B65536].End(xlUp).Offset(1, 0)
End If
Next s
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
702
Réponses
6
Affichages
336
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…