Comparer, colorier et annoter

DPX

XLDnaute Junior
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!!:confused:
 

Pièces jointes

  • Comparaison.xls
    21 KB · Affichages: 71
  • Comparaison.xls
    21 KB · Affichages: 82
  • Comparaison.xls
    21 KB · Affichages: 73

Robert

XLDnaute Barbatruc
Repose en paix
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
 

DPX

XLDnaute Junior
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 :mad: en ouvrant une fenêtre de bug???
"Espace pile insuffisant"
 

DPX

XLDnaute Junior
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.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Comparer, colorier et annoter

Bonjour le fil, bonjour le forum,

Une version 2 corrigée et adaptée aux modifications que tu as faites...
 

Pièces jointes

  • DPX_v02.xls
    48 KB · Affichages: 71
  • DPX_v02.xls
    48 KB · Affichages: 68
  • DPX_v02.xls
    48 KB · Affichages: 70

DPX

XLDnaute Junior
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
 

DPX

XLDnaute Junior
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é".
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16