Macro pour fusionner deux feuilles

Bonjour,

Je souhaite fusionner deux feuilles ayant la même structure en une seule feuille, comme si je faisais copier coller des lignes pour n'avoir qu'une seule feuille regroupant la totalité des lignes.

J'ai trouvé une macro sur le net que j'ai affecté au bouton "générer" mais je n'ai pas pu l'adapter.

Je vous met en fichier joint mon classeur ou il existe les feuilles "controle template " et "controle template clt" que je veux générer avec le bouton qui existe dans la feuille "CA".

Merci pour votre retour.

hichem

202web.xlsm (558.21 Ko)

Bonjour,

il faudrait que les titres de colonnes correspondent.

présentement il n'y a que Article et Client qui correspondent.

vous pourriez créer un nouvel onglet avec les correspondance.

Édit: par exemple

214hichem-web.xlsm (562.44 Ko)

Merci pour votre réponse sabV,

Je pense qu'on s'est mal compris , Au fait ce que je veux c'est de copier toutes les lignes qui se trouvent dans la feuille "contrôle template" dans une autre feuille "RECAP" par exemple et après prendre toutes les lignes qui se trouvent dans la feuille "contrôle template clt" et les copier au dessous des autres lignes que j'ai copié dans la feuille "RECAP".

Comme ça, j'aurai une seule feuille qui regroupe toutes les lignes, si par exemple j'ai 100 lignes dans la feuille 1 et 200 lignes dans la feuille 2 alors je veux avoir 300 lignes dans la feuille 3. sachant que la structure est la même comme vous l'avez remarqué.

Merci pour votre retour et désolé si je me suis mal exprimé.

Merci.

Bonjour hichem,

à tester,

Sub RECAP()
Dim sh1, sh2, sh3, x1  As String, x2  As String
Set sh1 = Sheets("CONTROLE TEMPLATE")
Set sh2 = Sheets("CONTROLE TEMPLATE clt")
Set sh3 = Sheets("RECAP")

x1 = Split(sh1.Range("A1").CurrentRegion.Address(0, 0), ":")(1)
x2 = Split(sh2.Range("A1").CurrentRegion.Address(0, 0), ":")(1)

sh1.Range("A2:" & x1).Copy sh3.Range("A2")
sh2.Range("A2:" & x2).Copy sh3.Range("A" & Cells(Rows.Count, 1).End(xlUp).Row + 1)
End Sub

édit: corretion As String

Merci pour ce retour rapide,

Aufait ca ne me copie que les lignes de la feuille "controle template" et je ne trouve pas en dessous les lignes de la feuille "controle template clt", est ce qu'on doit modifier quelques choses dans la variantes ?

Je pense aussi qu'il faut éviter de copier coller les formules mais seulement les valeurs pour éviter que les formules derrière redonnent des infos incohérentes.

Autre chose, peut-on ajouter une commande pour pouvoir faire fonctionner cette macro sur des feuilles protégés par un MDP (car mes deux feuilles la je les veux protégés et cachés )

Merci

regarder bien ce qu'il y a sur la cellule A410, c'est une formule qui fait référence à une cellule vide,

voulez-vous copier les valeurs uniquement ?

oui il y a bien une formule sur toutes les lignes pour que ça lit mes données qui sont variables de la feuille CA, et la j'ai envie de copier coller en valeur ce qu'il existe dans les 2 feuilles "controle template" et "controle template clt" dans "Recap" (le nombre de ligne pour varier bien entendu je peux avoir 408 lignes comme je peux avoir 246 lignes ... )

J’espère que c'est plus clair.

Merci encore une fois.

Bonjour,

pour transférer les données,

Sub RECAP()
Dim sh1, sh2, sh3, x1 As String, x2 As String, colonne As Integer
Set sh1 = Sheets("CONTROLE TEMPLATE")
Set sh2 = Sheets("CONTROLE TEMPLATE clt")
Set sh3 = Sheets("RECAP")

sh3.Cells.ClearContents

x1 = Split(sh1.Range("A1").CurrentRegion.Address(0, 0), ":")(1)
x2 = Split(sh2.Range("A1").CurrentRegion.Address(0, 0), ":")(1)
colonne = Range(x1).Column
rw2 = Range(x2).Row

sh3.Range("A2:" & x1).Value = sh1.Range("A2:" & x1).Value
n = sh3.Cells(Rows.Count, 1).End(xlUp).Row + 1
n1 = n + rw2 - 2
sh3.Range(Cells(n, 1).Address, Cells(n1, colonne).Address).Value = sh2.Range(Cells(2, 1).Address, Cells(rw2, colonne).Address).Value
End Sub

Merci

Ça marche impec. même si j'aurai voulu mettre une commande pour faire fonctionner le macro même si la feuille est protégé.

Merci quand même.

Ça marche impec. même si j'aurai voulu mettre une commande pour faire fonctionner le macro même si la feuille est protégé.

faudrait nous dire quel feuille est protégée ?

aufait jai protégé les deux feuilles template. et quand jexecute la macro ca bug et c'est normal.

il faudrait protéger les feuilles avec UserInterfaceOnly:=True

par exemple:

 Sheets("CONTROLE TEMPLATE").Protect Password:="MonMotDePasse", UserInterfaceOnly:=True
Rechercher des sujets similaires à "macro fusionner deux feuilles"