Fusion de cellules sous conditions
Julien Lefèvre
-
melanie1324 Messages postés 1561 Statut Membre -
melanie1324 Messages postés 1561 Statut Membre -
Bonjour,
J'ai un tableau qui a cette aspect :
Produit1 A D
Produit1 A D
Produit1 A D
Produit2 A E
Produit2 B E
Produit2 C E
Ma Macro devra me permettre de fusionner sous condition.
Dans l'exemple du haut, pour le produit1, les 3A vont fusionner ensemble, tout comme les 3D. Pour le produit2, pas de fusion pour A, B, C qui sont différents, fusion pour E qui est commin au produit2.
J'ai un tableau qui a cette aspect :
Produit1 A D
Produit1 A D
Produit1 A D
Produit2 A E
Produit2 B E
Produit2 C E
Ma Macro devra me permettre de fusionner sous condition.
Dans l'exemple du haut, pour le produit1, les 3A vont fusionner ensemble, tout comme les 3D. Pour le produit2, pas de fusion pour A, B, C qui sont différents, fusion pour E qui est commin au produit2.
A voir également:
- Fusion de cellules sous conditions
- Fusionner deux cellules excel - Guide
- Somme de plusieurs cellules excel - Guide
- Display fusion - Télécharger - Divers Utilitaires
- Verrouiller cellules excel - Guide
- 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