Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

MaximeC

XLDnaute Junior
Bonjour,

Dans le cadre d'un emploie saisonnier, on m'a demandé de réaliser une macro afin de comparer des données... Ayant très peu de base en VBA (si ce n'est un cours ayant eu pour objet la création de userform afin de réaliser des expériences probabilistes), je me tourne vers vous afin de m'orienter dans cette réalisation.

L'objectif est de trouver si il y en a, des similitudes entre une colonne de base B (environ 7500 lignes) et des données actualisées régulièrement à inserer (par moi même) dans le même fichier excel, colonne R (nombre de lignes variables ... maximum 500).

L'autre but étant de repérer facilement les similtudes, serait-il possible de mettre en couleur les lignes des cellules identiques au fichier importer? (une couleur par référence, jusqu'à la colonne P).

D'autre part, il y a 3 typeS de références à comparer, séparées dans 3 colonnes distinctes. Est-il possible de réaliser les demandes ci dessus sur chacune des colonnes (B,C et F)?

Enfin, afin de faciliter l'utilisation future de mes collègues, il me semble qu'il est possible de créer un bouton de commande afin de lancer chacun des 3 programmes. Pouvez vous les réaliser?

Dans l'attente de vos réponses, je vous souhaite une agréable journée.

Merci, et bon courage.

Maxime
 
Dernière édition:

leop93

XLDnaute Occasionnel
Re : Mettre en evidence des similutes entre 2 feuilles excel, a l'aide d'1 programme

Hum, comparer deux colonnes entières ?! Tu es sûr que ce n'est pas cellule par cellule des colonnes ?

Car comparer une colonne entière, tu auras toujours des différences. D'ailleurs dans ton fichier texte, tu n'as rien dans la conne R, donc ce n'est pas viable...

Ce que je t'ai fait c'est:

- comparer ce qu'il y a dans les cellules B
- si 2 cellules B contiennent la même chose la ligne se colore (il manque la gestion des couleurs pour chaque valeur différente)

Toi tu veux faire quoi au final sur ton fichier test (que tu adapteras par la suite sur ton fichier pour ton boulot) ?
 

MaximeC

XLDnaute Junior
Re : Mettre en evidence des similutes entre 2 feuilles excel, a l'aide d'1 programme

Finalement j'ai réussi à fair ce que je voulais, même si c'est un peu lours comme écriture, ce qui n'empéche pas le programme d'aller vite.. Je dois effectivement avoir un problème avec oui ... Par contre il me reste a trouver le moyen de modifier les couleurs ..

Private Sub CommandButton1_Click()

'INITIALISATION

Dim i As Long ' Lignes de la colonne A
Dim j As Long ' Colonne A à Colonne P
Dim k As Long ' Lignes de la colonne O
Dim m As Single ' Changment de couleur

' PROGRAMME

'm = 1
For k = 3 To Cells(500, 18).End(xlUp).Row ' jusqu'à la derniére ligne non vide; .End(xlUp).Row: la ligne de la première cellule non vide en remontant depuis la dernière ligne de la colonne.


For i = 3 To 7433 ' Parcours des données recensées
If Cells(i, 2).Value = Cells(k, 18).Value Then

Cells(k, 18).Interior.ColorIndex = 5
Cells(i, 1).Interior.ColorIndex = 5
Cells(i, 2).Interior.ColorIndex = 5 'Recherche des similitudes en évitant les cellules non vides ..
Cells(i, 3).Interior.ColorIndex = 5
Cells(i, 4).Interior.ColorIndex = 5
Cells(i, 5).Interior.ColorIndex = 5
Cells(i, 6).Interior.ColorIndex = 5
Cells(i, 7).Interior.ColorIndex = 5
Cells(i, 8).Interior.ColorIndex = 5
Cells(i, 9).Interior.ColorIndex = 5
Cells(i, 10).Interior.ColorIndex = 5
Cells(i, 11).Interior.ColorIndex = 5
Cells(i, 12).Interior.ColorIndex = 5
Cells(i, 13).Interior.ColorIndex = 5
Cells(i, 14).Interior.ColorIndex = 5
Cells(i, 15).Interior.ColorIndex = 5
Cells(i, 16).Interior.ColorIndex = 5
End If
Next i

Next k

End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Mettre en evidence des similutes entre 2 feuilles excel, a l'aide d'1 programme

J'avoue aussi être bien perplexe.
J'ai toujours sous le coude le Test_comparaison.xls avec 8 colonnes en feuil1, rarement mais diversement renseignées, une feuil2 avec juste 52 codes renseignés en colonne A, et je n'ai toujours pas compris ce qu'on voulait tirer de tout ça.
 

MaximeC

XLDnaute Junior
Re : Mettre en evidence des similutes entre 2 feuilles excel, a l'aide d'1 programme

Ca marche en utilisant le And!!!
Merci beaucoup !!! :D

Maintenant lorsque j'utilise cette instruction dans la boucle if , cela ne fonctionne pas ... est ce normal??
m = 1
Cells(k, 18).Interior.ColorIndex = m
m = m + 1
 

leop93

XLDnaute Occasionnel
Re : Mettre en evidence des similutes entre 2 feuilles excel, a l'aide d'1 programme

Je suis d'accord avec toi Dranreb.

Maxime, on dirait que tu ne te préocupes pas trop de nos conseils... Et tu n'essayes pas de nous expliquer clairement ton problème alros que nous sommes deux, Franc-Comtois en plus ;) , à vouloir t'aider.

Sinon dans le code que tu viens d'envoyer, remplace ton For i = 3 To 7433 par For i = 3 To Cells(500, 18).End(xlUp).Row si c'est viable... Tu gagneras en temps d'éxécution amha.
 

MaximeC

XLDnaute Junior
Re : Mettre en evidence des similutes entre 2 feuilles excel, a l'aide d'1 programme

Le premier fichier n'est plus d'actualité comme j'ai du le préciser ultérieurement il me semble ...
J'ai voulu vous envoyer un autre fichier, mais il était trop grand ...

je vais essayer de vous le renvoyer en supprimant des colonnes ...

Désolé pour les confusions engendrées
 

MaximeC

XLDnaute Junior
Re : Mettre en evidence des similutes entre 2 feuilles excel, a l'aide d'1 programme

Voila le nouveau fichier .

Le but était de comparer la colonne B avec la colonne R. La colonne R étant les données qui sont actualiser, le but du fichier est de savoir si je posséde ces mêmes données, afin de pouvoir moi même les actualiser..
De ce fait je compare les cellules de R, une par une aux cellules de B. Et lorsqu'il y a similitude, je les colori
(enfin le programme).
maintenant je cherche a changer de couleur ..
 

leop93

XLDnaute Occasionnel
Re : Mettre en evidence des similutes entre 2 feuilles excel, a l'aide d'1 programme

Le premier fichier n'est plus d'actualité comme j'ai du le préciser ultérieurement il me semble ...
J'ai voulu vous envoyer un autre fichier, mais il était trop grand ...

je vais essayer de vous le renvoyer en supprimant des colonnes ...

Désolé pour les confusions engendrées
Ultérieurement, donc au moins après ce message. ;)

Tu peux mettre sur Cjoint ton fichier s'il est trop gros pour le forum...
 

leop93

XLDnaute Occasionnel
Re : Mettre en evidence des similutes entre 2 feuilles excel, a l'aide d'1 programme

Oh comme par hasard...

Je remplace:
Code:
For i = 3 To 7433
Par:
Code:
For i = 3 to Cells(500, 18).End(xlUp).Row

Et ça va a 200 à l'heure. Je ne te l'ai dit que 2 fois, même 3 avec ce message, mais le prendras tu en compte ?

EDIT: et puis un petit:
Code:
Application.ScreenUpdating = False
en début de code, ainsi qu'un petit:
Code:
Application.ScreenUpdating = True
en fin de code fera le plus grand bien aux yeux de tes utilisateurs/chefs...
 
Dernière édition:

MaximeC

XLDnaute Junior
Re : Mettre en evidence des similutes entre 2 feuilles excel, a l'aide d'1 programme

Je sais pas comment faire... c'est la première fois que je viens sur un forum alors c'est pas évident pour moi ..
Antérieurement si tu préféres ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 078
Messages
2 085 110
Membres
102 783
dernier inscrit
Basoje