Comparer, colorier et annoter

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

D

DPX

Guest
Bonjour à tous,

A partir de 2 feuilles, je voudrais comparer 2 colonnes puis rajouter une autre présente sur la feuille2.
Ensuite sur les éléments qui ne correspondent pas je voudrais colorier la ligne entière et un cellule annotée.

Voir le fichier en PJ car je ne trouve pas les mots!!😕
 

Pièces jointes

Re : Comparer, colorier et annoter

Bonsoir DPX, bonsoir le forum,

Je te propose la macro ci-dessous :
Code:
Sub Macro1()
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r As Range 'déclare la variable r (Recherche)
 
'****************************
'efface les anciennes valeurs
'****************************
Set pl = Sheets("Resultat").Range("A1").CurrentRegion 'définit la plage pl
Set pl = pl.Resize(, pl.Columns.Count + 2) 'redéfinit la plage pl (pl + 2 colonnes)
pl.Clear 'efface la plage pl
 
'copy le tableau de l'onglet "Feuil1" et le colle dans l'Onglet "Resultat"
Sheets("Feuil1").Range("A1").CurrentRegion.Copy Sheets("Resultat").Range("A1")
 
'************************
'mise en forme du tableau
'************************
With Sheets("Resultat") 'prend en compte l'onglet "Resultat"
    .Range("E1").Value = "CONTRAT" 'édite E1
    .Range("F1").Value = "BILAN" 'édite F1
    .Columns(5).Font.ColorIndex = 3 'couleur de police rouge dans la colonne E
    .Columns(5).Font.Bold = True 'Gras dans la colonne E
    .Columns(6).Font.ColorIndex = 3 'couleur de police rouge dans la colonne F
End With 'fin de la prise en compte de l'onglet "Resultat"

Set pl = pl.Offset(1, 0).Resize(pl.Rows.Count - 1, 1) 'redéfinit pl (uniquement la colonne A, à partir de A2)
For Each cel In pl 'boucle sur toutes les cellules éditées cel de la plage pl
    'définit la recherche r (recherche dans la colonne H de l'onglet "Feuil2" la valeur entière de la cellule cel)
    Set r = Sheets("Feuil2").Columns(8).Find(cel.Value, , xlValues, xlWhole)
    If r Is Nothing Then 'condition : si aucune occurrence n'est trouvée
        cel.Offset(0, 4).Value = "non activé" 'modifie la colonne E de cel
        cel.Offset(0, 5).Value = "non activé" 'modifie la colonne F de cel
        cel.Resize(, 6).Interior.ColorIndex = 40 'colore la ligne
    Else 'sinon (si il existe une occurrence)
        cel.Offset(0, 4).Value = r.Offset(0, -1) 'récupère le contrat
        cel.Offset(0, 5).Value = "activé" 'modifie la colonne F de cel
    End If 'fin de la condition
Next cel 'prochaine cellule cel de la boucle
End Sub
 
Re : Comparer, colorier et annoter

Bonsoir,

Merci pour cette macro et les infos trouvées dedans 🙂
J'ai essayé ta proposition dans le fichier joint.
Excel tourne en boucle et plante 😡 en ouvrant une fenêtre de bug???
"Espace pile insuffisant"
 
Re : Comparer, colorier et annoter

Je retire le message précédant! ça fonctionne.
Reste encore 2 détails
Faire apparaître ligne 1 de la feuille résultat les ligne 1 correspondantes dans les 2 autres feuilles.
Déplacer le bouton mise à jour sur une autre feuille et y associer une macro précédente.
 
Re : Comparer, colorier et annoter

Bonjour,

J'ai une proposition: on utilise la macro concaténer les colonnes date et numéro dans une nouvelle dans chaque feuille, puis on les compare. Et on finit par la supprimer dans la feuille de résultat.

Sub ConcatenerColonnes()
For Each cl In Range(Cells(1, ActiveCell.Column), Cells(65536, ActiveCell.Column).End(xlUp))
cl.Offset(, 2).Value = cl.Value & cl.Offset(, 1)
Next cl

End Sub
 
Re : Comparer, colorier et annoter

Dans le fichier joint le résultat de la macro est le coloriage et l'annotation de colonne uniquement en fonction des colonnes Numéro des feuille 1 et 2.
Seulement si nous avons une ligne ou le numéro est présent sur les 2 feuilles mais avec deux date distinctes alors il apparait comme activé aux deux dates. Et je souhaiterais que les dates ET les numéros correspondent pour annoter le résultat comme "activé".
 
- 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

Réponses
18
Affichages
607
Réponses
15
Affichages
297
Réponses
1
Affichages
220
  • Question Question
Microsoft 365 Comparer 2 onglets
Réponses
8
Affichages
672
Réponses
1
Affichages
334
Réponses
12
Affichages
807
Retour