Fusion de données feuilles Excel

Fermé
bolinha2009 Messages postés 13 Date d'inscription jeudi 30 octobre 2014 Statut Membre Dernière intervention 9 février 2018 - 30 oct. 2014 à 12:00
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 - 30 oct. 2014 à 15:27
Bonjour,

J'ai un fichier Excel comportant plusieurs feuilles. J'aimerais n'avoir qu'une seule feuille et tout regrouper dedans pour pouvoir faire des tris et des filtres.
Merci de votre aide !
A voir également:

3 réponses

bolinha2009 Messages postés 13 Date d'inscription jeudi 30 octobre 2014 Statut Membre Dernière intervention 9 février 2018 2
30 oct. 2014 à 14:26
Malheureusement je ne peux pas car il s'agit de noms de locataires avec leurs adresses et loyers....
1
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
30 oct. 2014 à 15:27
Anyway...

Procède comme suit :

1- Crée une nouvelle feuille que tu nommeras RECAP et mets-y les mêmes entêtes de colonnes que les autres feuilles (ligne 1), le restes des lignes doit rester vide.

2- Appuie sur ALT+F11 (l'éditeur de code VBA s'ouvre)

3- A gauche de l'écran, tu vois la liste des feuilles de ton fichier. Double-clique sur la feuille RECAP.

4- Dans la partie de droite (grand espace vide), colle le code suivant:

'-----------------------------------------------------------------------
' Copie les lignes de Feuil1 à la suite de celles de RECAP
'-----------------------------------------------------------------------
With Sheets("Feuil1")
For ligne = 2 To .Range("A1").End(xlDown).Row
.Rows(ligne).Copy
Sheets("RECAP").Rows(Range("A1").End(xlDown).Row + 1).PasteSpecial
Next
End With

Ce code est valable pour une seule feuille (Feuil1) à récapituler dans RECAP.

5- Reproduis ce code (copier-coller) autant de fois que tu as de feuilles à récapituler. Par exemple pour 3 feuilles, tu obtiendras ceci:

'-----------------------------------------------------------------------
' Copie les lignes de Feuil1 à la suite de celles de RECAP
'-----------------------------------------------------------------------
With Sheets("Feuil1")
For ligne = 2 To .Range("A1").End(xlDown).Row
.Rows(ligne).Copy
Sheets("RECAP").Rows(Range("A1").End(xlDown).Row + 1).PasteSpecial
Next
End With
'-----------------------------------------------------------------------
' Copie les lignes de Feuil1 à la suite de celles de RECAP
'-----------------------------------------------------------------------
With Sheets("Feuil1")
For ligne = 2 To .Range("A1").End(xlDown).Row
.Rows(ligne).Copy
Sheets("RECAP").Rows(Range("A1").End(xlDown).Row + 1).PasteSpecial
Next
End With
'-----------------------------------------------------------------------
' Copie les lignes de Feuil1 à la suite de celles de RECAP
'-----------------------------------------------------------------------
With Sheets("Feuil1")
For ligne = 2 To .Range("A1").End(xlDown).Row
.Rows(ligne).Copy
Sheets("RECAP").Rows(Range("A1").End(xlDown).Row + 1).PasteSpecial
Next
End With


6- Maintenant, il faut adapter les noms des feuilles de l'exemple à celles de ton cas réel. Pour ce faire, dans chaque ligne de code With Sheets("Feuil1"), changer "Feuil1" par le nom réel des feuilles de ton fichier (attention à garder les guillemets). Par exemple si tu as trois feuilles nommées "TOTO", "TATA" et "TUTU", tu devrais avoir le code suivant:

'-----------------------------------------------------------------------
' Copie les lignes de TOTO à la suite de celles de RECAP
'-----------------------------------------------------------------------
With Sheets("TOTO")
For ligne = 2 To .Range("A1").End(xlDown).Row
.Rows(ligne).Copy
Sheets("RECAP").Rows(Range("A1").End(xlDown).Row + 1).PasteSpecial
Next
End With
'-----------------------------------------------------------------------
' Copie les lignes de TATA à la suite de celles de RECAP
'-----------------------------------------------------------------------
With Sheets("TATA")
For ligne = 2 To .Range("A1").End(xlDown).Row
.Rows(ligne).Copy
Sheets("RECAP").Rows(Range("A1").End(xlDown).Row + 1).PasteSpecial
Next
End With
'-----------------------------------------------------------------------
' Copie les lignes de TUTU à la suite de celles de RECAP
'-----------------------------------------------------------------------
With Sheets("TUTU")
For ligne = 2 To .Range("A1").End(xlDown).Row
.Rows(ligne).Copy
Sheets("RECAP").Rows(Range("A1").End(xlDown).Row + 1).PasteSpecial
Next
End With


7- Insérer ce code Sub Fusionner() en première ligne du code et ce code End Sub en dernière ligne.

8- Positionner le curseur quelque part sur le code (pas avant et pas après).

9- Exécuter le code en appuyant sur F5


Obtiens-tu le résultat voulu ? Je l'espère en tous cas, car je dois quitter jusqu'à dimanche inchallah (c'est le week-end chez nous).

PS : les lignes de code qui commencent par une apostrophe sont des commentaires explicatifs qui peuvent être supprimés sans problème.
0
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
30 oct. 2014 à 13:00
Salam bolinha2009.

Voici un fichier exemple avec un code VBA qui fusionne 3 feuilles en une seule : https://www.cjoint.com/?DJEndx5AYJa

Et voici le code :

Sub FusionnerFeuilles()

' Copie les lignes de Feuil2 à la suite de celles de Feuil1
With Sheets("Feuil2")
For ligne = 2 To .Range("A1").End(xlDown).Row
.Rows(ligne).Copy
Rows(Range("A1").End(xlDown).Row + 1).PasteSpecial
Next
End With

' Copie les lignes de Feuil3 à la suite de celles de Feuil1
With Sheets("Feuil3")
For ligne = 2 To .Range("A1").End(xlDown).Row
.Rows(ligne).Copy
Rows(Range("A1").End(xlDown).Row + 1).PasteSpecial
Next
End With

End Sub


J'espère avoir aidé. :)
0
bolinha2009 Messages postés 13 Date d'inscription jeudi 30 octobre 2014 Statut Membre Dernière intervention 9 février 2018 2
30 oct. 2014 à 13:55
C'est exactement ce que je veux faire mais je ne sais pas comment le programmer... :S
0
redaiwa Messages postés 351 Date d'inscription mardi 7 octobre 2008 Statut Membre Dernière intervention 25 janvier 2024 119
30 oct. 2014 à 13:59
Si ton fichier ne comporte pas de données personnelles ou confidentielles, tu peux le joindre ici pour qu'on puisse lui adapter le code.

Voici comment joindre ton fichier : https://forums.commentcamarche.net/forum/affich-28538194-joindre-fichier-dans-ce-forum#q=comment+joindre+fichier+cjoint&cur=2&url=%2F
0