Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
818 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Comparaison trois colonnes VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparaison trois colonnes VBA

n°2069715
marcopm
Posté le 13-04-2011 à 12:58:01  profilanswer
 

Bonjour,
 
J'ai trois colonnes contenant des noms à comparer (plus de 3000). Je voudrais avoir un script qui grise les noms communs au trois colonnes et laisse les autres mais je n'y arrive pas.
Pouvez-vous m'aider ?
 
D'avance merci

mood
Publicité
Posté le 13-04-2011 à 12:58:01  profilanswer
 

n°2069728
Nico-Rep
Posté le 13-04-2011 à 14:05:39  profilanswer
 

Une triple boucle avec l'utilisation de variables tableau pour chaque colonne, ça devrait être le plus rapide ;)


---------------
Topic de vente HW - Ancien feed
n°2069730
marcopm
Posté le 13-04-2011 à 14:07:54  profilanswer
 

Je ne suis pas du tout familiarisé avec cela ... du style ?

n°2069732
vincentpsg
Posté le 13-04-2011 à 14:10:48  profilanswer
 

Si tu connais exactement le nombre de lignes, une simple boucle for fera l'affaire.
Tu parcours toutes les lignes, et avec des if, tu testes si les valeurs des cellules sont égales.
Si le nombre de ligne est variable, tu peux utiliser une boucle while (tant que tu ne tombes pas sur une cellule vide...)
 
Après, pour griser les cellules, tu peux voir le code en enregistrant une macro...
 
Sinon, pour comparer des chaines de caractère tu peux utiliser l'opérateur LIKE, cela peut te permettre
d'omettre le fait que certaines lettres soient en majuscules ou non... cf le lien: http://www.siteduzero.com/tutoriel [...] #ss_part_3, partie "D'autres opérateurs logiques"

n°2069753
marcopm
Posté le 13-04-2011 à 15:13:53  profilanswer
 

Je ne vois pas comment faire ... désolé

n°2069766
vincentpsg
Posté le 13-04-2011 à 15:57:34  profilanswer
 

Sais-tu ce qu'est une boucle for? N'as tu même pas ne serait-ce qu'une idée de comment procéder?

n°2069767
marcopm
Posté le 13-04-2011 à 16:01:13  profilanswer
 

Vaguement mais sans plus ... si je savais comment faire je ne demanderai pas de l'aide ...

n°2069777
vincentpsg
Posté le 13-04-2011 à 16:31:32  profilanswer
 

Si tu ne connais pas ça je te conseil de revoir les bases du langage VBA... et le site du zero possède un très bon tutoriel pour  
ça:
 
http://www.siteduzero.com/tutoriel [...] art_200942

n°2070532
tarteflamb​ee
Posté le 17-04-2011 à 19:30:30  profilanswer
 

avec des dicos ?
 
en ajoutant la bibliotheque "microsoft scripting runtime"
 
un truc du genre:
 
Sub fgdh()
 
Dim dico_Col1 As New Scripting.Dictionary, dico_Col2 As New Scripting.Dictionary, dico_Col3 As New Scripting.Dictionary
 
col1 = 1
col2 = 2
col3 = 3
 
'remplissage des 3 dicos
For i = 1 To Cells(65536, col1).End(xlUp).Row
    dico_Col1(CStr(Cells(i, col1).Value)) = 1
Next i
For i = 1 To Cells(65536, col2).End(xlUp).Row
    dico_Col2(CStr(Cells(i, col2).Value)) = 1
Next i
For i = 1 To Cells(65536, col3).End(xlUp).Row
    dico_Col3(CStr(Cells(i, col3).Value)) = 1
Next i
 
'test sur chaque cellule
For i = 1 To Cells(65536, col1).End(xlUp).Row
    If dico_Col1.Exists(CStr(Cells(i, col1).Value)) And dico_Col2.Exists(CStr(Cells(i, col1).Value)) And dico_Col3.Exists(CStr(Cells(i, col1).Value)) Then
        Cells(i, col1).Interior.Color = vbGrayText
    End If
Next i
For i = 1 To Cells(65536, col2).End(xlUp).Row
    If dico_Col1.Exists(CStr(Cells(i, col2).Value)) And dico_Col2.Exists(CStr(Cells(i, col2).Value)) And dico_Col3.Exists(CStr(Cells(i, col2).Value)) Then
        Cells(i, col2).Interior.Color = vbGrayText
    End If
Next i
For i = 1 To Cells(65536, col3).End(xlUp).Row
    If dico_Col1.Exists(CStr(Cells(i, col3).Value)) And dico_Col2.Exists(CStr(Cells(i, col3).Value)) And dico_Col3.Exists(CStr(Cells(i, col3).Value)) Then
        Cells(i, col3).Interior.Color = vbGrayText
    End If
Next i
 
End Sub


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Comparaison trois colonnes VBA

 

Sujets relatifs
[VBA] Récupérer la sélection dans un dropdown excelComparaison time heure
VBA Excel - graphique données sources = tableauVBA Excel - Black Scholes - volatilité implicite
VBA et macro[VBA] Gestion d'une plage de donnée
Question de mise en forme conditionnelle dans VBACode VBA Word
[Shell] comparaison mot contenu de fichier[VBA AutoCAD] Problème inter-application
Plus de sujets relatifs à : Comparaison trois colonnes VBA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR