• Initiateur de la discussion Initiateur de la discussion bentlse
  • 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 !

B

bentlse

Guest
Bonjour,

Je cherche a faire un onglet de recap, regroupant toutes les données provenant de différents onglets d'un même fichier.
Chaque onglet est structuré de la même manière, seule les données changent, donc en fait il faudrait que dans l'onglet recap, je retrouve toutes les lignes de tous les autres onglet les unes a la suite des autres.
D'après vous quel est la meilleure solution et si possible la moins compliqué sachant que je ne connais rien au macro ?
Ci-joint un exemple de ce que je voudrait faire.

Merci d'avance pour vos conseils...

Pi: OS= Win XP - Excel 2003

Benjamin
 

Pièces jointes

Re : Onglet Recap

Bonjour Bentlse, bonjour le forum,

Je te porpose la macro suivante :
Code:
Sub Macro1()
Dim dest As Range 'déclare la variable dest (DESTination)
Dim ong As Worksheet 'déclare la variable ong (ONGlet)
 
For Each ong In Sheets 'boucle sur tous les onglets du classeur
    If ong.Name <> "Récap" Then 'condition : si le nom de l'onglet n'est pas "Récap"
        Set dest = Sheets("Récap").Range("A65536").End(xlUp).Offset(1, 0) 'définit la variable dest
        'copie la plage utilisée de l'onglet (redimensionnée sans la première ligne) et la colle dans dest
        ong.UsedRange.Offset(1, 0).Resize(ong.UsedRange.Rows.Count - 1).Copy dest
    End If 'fin de la condition
Next ong 'prochain onglet de la boucle
End Sub
 
Re : Onglet Recap

Bonjour et merci beaucoup pour la réponse,

J'ai testé le code ci-dessus et aprés quelques essais j'ai réussi à le faire fonctionner en affectant la macro à un bouton.
Le seul "Hic" maintenant est que si je click plusieurs fois dessus, cela recopi de nouveau toutes les données. Est ce possible d'éviter cela ?

Merci d'avance,

🙂
 
Re : Onglet Recap

Bonjour,

et pourquoi tu ne mets pas toutes tes données dans une seule feuille avec une colonne supplémentaire avec la notion DT_...
un simple tableau croisé dynamique, des filtres ... tu as beaucoup plus de possibilités pour exploiter tes données par la suite (et sans risque d'erreur d'appuyer deux fois sur le bouton)
 
Re : Onglet Recap

Bonjour bentlse, les participants,

Pourquoi ne pas effacer la feuille Récap en début de macro ?

Ex :

Code:
Sub Macro1()
Dim dest As Range 'déclare la variable dest (DESTination)
Dim ong As Worksheet 'déclare la variable ong (ONGlet)
 
[B][COLOR="Blue"]Sheets("Récap").Range("a1:iv65536").ClearContents[/COLOR][/B]

For Each ong In Sheets 'boucle sur tous les onglets du classeur
    If ong.Name <> "Récap" Then 'condition : si le nom de l'onglet n'est pas "Récap"
        Set dest = Sheets("Récap").Range("A65536").End(xlUp).Offset(1, 0) 'définit la variable dest
        'copie la plage utilisée de l'onglet (redimensionnée sans la première ligne) et la colle dans dest
        ong.UsedRange.Offset(1, 0).Resize(ong.UsedRange.Rows.Count - 1).Copy dest
    End If 'fin de la condition
Next ong 'prochain onglet de la boucle
End Sub

Cordialement.
 
Re : Onglet Recap

Bonjour le fil, bonjour le forum,

Si Benjamin choisit l'option VBA, ma première macro modifiée pour supprimer, comme le propose Papou-net, les anciennes données de l'onglet Récap mais en conservant les deux premières lignes :
Code:
Sub Macro1()
Dim dest As Range 'déclare la variable dest (DESTination)
Dim ong As Worksheet 'déclare la variable ong (ONGlet)
 
For Each ong In Sheets 'boucle sur tous les onglets du classeur
    [COLOR=blue]If ong.Name = "Récap" Then 'condition : si le nom de l'onglet est "Récap"[/COLOR]
[COLOR=blue]        ong.UsedRange.Offset(2, 0).Resize(ong.UsedRange.Rows.Count - 2).ClearContents 'efface les anciennes valeurs[/COLOR]
[COLOR=blue]    Else 'sinon[/COLOR]
        Set dest = Sheets("Récap").Range("A65536").End(xlUp).Offset(1, 0) 'définit la variable dest
        'copie la plage utilisée de l'onglet (redimensionnée sans la première ligne) et la colle dans dest
        ong.UsedRange.Offset(1, 0).Resize(ong.UsedRange.Rows.Count - 1).Copy dest
    End If 'fin de la condition
Next ong 'prochain onglet de la boucle
End Sub
 
Re : Onglet Recap

Re-Bonjour à Tous,

En effet la solution que m'avait fourni Robert me convient tout à fait, donc pour moi c'est un probléme résolu grace au nouveau code qui efface les données avant de les recopier !

Merci beaucoup à tous pour votre contribution sur ce post, étant nouveau sur ce forum, je suis agréablement surpris de voir autant de personne s'intérresser aux problémes des autres, ca fait vraiment plaisirs !

bonne continuation à tous...

🙂
 
- 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

D
Réponses
8
Affichages
1 K
doublefogg
D
Réponses
5
Affichages
2 K
X
Réponses
31
Affichages
4 K
Xplorer
X
A
Réponses
11
Affichages
2 K
A
M
  • Question Question
Réponses
3
Affichages
1 K
Mr.Nobody
M
H
Réponses
2
Affichages
2 K
H
G
Réponses
4
Affichages
1 K
Gregoryen
G
Retour