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

oliverthekid

XLDnaute Nouveau
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

  • Conso.xls
    56 KB · Affichages: 79
  • Conso.xls
    56 KB · Affichages: 72
  • Conso.xls
    56 KB · Affichages: 73
Dernière édition:

Efgé

XLDnaute Barbatruc
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

  • oliverthekid(2).xls
    58 KB · Affichages: 68

DoubleZero

XLDnaute Barbatruc
Re : Consolidation de données dans 1 onlget

Bonjour, oliverthekid, Efgé , le Forum,

Une autre suggestion dans le fichier joint.

A bientôt.
 

Pièces jointes

  • 00 - oliverthekid.xls
    60.5 KB · Affichages: 73

oliverthekid

XLDnaute Nouveau
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.
 

DoubleZero

XLDnaute Barbatruc
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 .
 

oliverthekid

XLDnaute Nouveau
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

  • OLI LISTING EXAMPLE.xls
    33 KB · Affichages: 66
  • OLI LISTING EXAMPLE.xls
    33 KB · Affichages: 65
  • OLI LISTING EXAMPLE.xls
    33 KB · Affichages: 65

DoubleZero

XLDnaute Barbatruc
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:

oliverthekid

XLDnaute Nouveau
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)
 

DoubleZero

XLDnaute Barbatruc
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 .
 

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…