A voir également:
- Fusion de cellules sous conditions
- Fusionner deux cellules excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller cellules excel - Guide
- Display fusion - Télécharger - Divers Utilitaires
- Colorer des cellules excel sous condition - Guide
si tu veux une macro : ssaie celle là
sub macro_fusion ()
feuilledepart = sheets("nomfeuille");Name ' modifie le nomfeuille avec ton tableau
feuillearrivee = sheets("nomfeuille2").Name 'la feuille ou tu veux que ce soit fusionné
'je pars du principe que te slibellés sont enl ligne 1 et que ton tableau commence en ligne 2 et que tes produits sont en colonne A et les 2 autres en B et C
'définition des variables
lignedépart=2
lignearrivée = 2
colonnedépart = 2
sheets(feuilledepart).select 'modifie le nom feuilledepart
rows(1).copy
sheets(feuillearrivee).select 'modifie le nom feuillearrivée
cells(1,1).select
Activesheet.paste
sheets(feuilledepart).select
lignedépart=2
'1ère boucle qui va balayer toutes les colonnes de ton tableau
do while cells(lignedépart,colonnedépart) <> ""
sheets(feuilledepart).select
'2ème boucle qui va balayer toutes les lignes de ton tableau
do while cells(lignedepart,1) <> ""
sheets(feuilledepart).select
produit= cells(lignedepart,1)
valeur = cells(lignedépart,2)
sheets(feuillearrivee).select
trouve = ""
sheets(feuillearrivee).select
'la suite va chercher dans la feuille d'arrivée si les données de la feuille de départ sont déjà présents
do while cells(lignearrivée,1) <> ""
if cells(lignearrivée,1) = produit then
if cells(lignearrivée,2) = valeur then
cells(lignearrivée,20) = X
trouve = 1
end if
end if
lignearrivée = ""
loop
'si les données n'ont pas été trouvées, on les rajoute
if trouve = ""
cells(lignearrivée,1) = produit
cells(lignearrivée,2) = valeur
end if
lignedepart = lignedepart+1
loop
colonnedépart = colonnedépart+1
lignedépart=2
loop
'Cette boucle permet de supprimer toutes les lignes pour lesquelles les données n'ont pas été trovuées depuis la feuille de départ
sheets(feuillearrivee).select
lignearrivée = 1
do while cells(lignearrivée,1) <> ""
if cells(lignearrivée,20) = X then
cells(lignearrivée,20) =""
else
rows(lignearrivée).Delete Shift
lignearrivée=lignearrivée-1
end if
lignearrivée=lignearrivée+1
loop
end sub