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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  HELP pour comparaison de cellules VBA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

HELP pour comparaison de cellules VBA

n°2234392
sbaq
Posté le 29-07-2014 à 16:19:16  profilanswer
 

Bonjour à tous,
 
débutant en VBA j'ai un petit souci.
 
L'objectif de la macro est de comparer 2 plages de données dans 2 feuilles de calcul d'un même classeur. Si les 2 cellules sont égales, alors je veux faire apparaître "#N/A" dans la seconde feuille.
 
Pour ce faire je pense avoir trouvé comment faire pour une colonne, mais je n'arrive pas à passer à la colonne suivante.
 

Citation :


Sub Macro1()  
 
Dim i As Integer  
i = 5  
While i < 200
 
If Worksheets("Feuil1" ).Range("G" + CStr(i)).Value <> Worksheets("Feuil2" ).Range("G" + CStr(i)).Value Then  
 
Worksheets("Feuil2" ).Activate  
 
Worksheets("Feuil2" ).Range("G" + CStr(i)).Value="#N/A"  
 
End If  
 
i = i + 1  
 
Wend  
 
End Sub  


 
Grâce à cela, ça compare la colonne G et le #N/A apparaît si les 2 valeurs sont identiques.
 
Ma question est donc : comment compléter cela pour faire ce procédé de la colonne G à la colonne S ? ou plus simplement sur toute la plage [G5:S200]
 
Merci à vous pour votre aide !


Message édité par sbaq le 29-07-2014 à 16:20:15
mood
Publicité
Posté le 29-07-2014 à 16:19:16  profilanswer
 

n°2234442
patrice337​40
Avec la réponse, c'est facile.
Posté le 29-07-2014 à 20:46:25  profilanswer
 

Bonjour
 
Tu demandes : Si les 2 cellules sont égales, alors je veux faire apparaître "#N/A" dans la seconde feuille
 
Dans ton code tu mets : <> (c'est-à-dire différentes) et tu affirmes : Grâce à cela, ça compare la colonne G et le #N/A apparaît si les 2 valeurs sont identiques.  :ouch: :pt1cable:  :ouch:  
 
Voici donc 2 codes :
Celui-ci pour écrire #N/A lorsque les cellules sont identiques :

Code :
  1. Sub x()
  2. Dim r As Range
  3. Dim c As Range
  4. Dim o As Variant
  5. Dim d As Variant
  6.   Set r = Worksheets("Feuil1" ).Range("G5:S200" )
  7.   With Worksheets("Feuil2" )
  8.     For Each c In r.Cells
  9.       o = c.Value
  10.       d = .Range(c.Address).Value
  11.       If VarType(o) = VarType(d) Then
  12.         If o = d Then .Range(c.Address).Value = "#N/A"
  13.       End If
  14.     Next c
  15.   End With
  16. End Sub


Et celui-ci pour écrire #N/A lorsque les cellules sont différentes:

Code :
  1. Sub y()
  2. Dim r As Range
  3. Dim c As Range
  4. Dim o As Variant
  5. Dim d As Variant
  6.   Set r = Worksheets("Feuil1" ).Range("G5:S200" )
  7.   With Worksheets("Feuil2" )
  8.     For Each c In r.Cells
  9.       o = c.Value
  10.       d = .Range(c.Address).Value
  11.       If VarType(o) = VarType(d) Then
  12.         If o <> d Then .Range(c.Address).Value = "#N/A"
  13.       Else
  14.         .Range(c.Address).Value = "#N/A"
  15.       End If
  16.     Next c
  17.   End With
  18. End Sub


Message édité par patrice33740 le 29-07-2014 à 20:53:57
n°2234466
sbaq
Posté le 30-07-2014 à 09:30:38  profilanswer
 

Au temps pour moi j'avais bien écrit n'importe quoi... je confirme, elles doivent être identiques, je m'étais trompé sur le signe <>, il fallait bien un égal, ne me demande pas pourquoi j'en suis arrivé là, je me le demande encore...
 
En tout cas un énorme merci pour ta (tes) réponse(s), ça m'aide énormément :)


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

  HELP pour comparaison de cellules VBA

 

Sujets relatifs
HELP macro copie/colle valeurs entre 2 classeurs différentsHelp SVP "erreur d'exécution 13 incompatibilité de type, vba"
VBA - creer tableau dans wordL'indice n'appartient pas à la sélection, VBA Excel
Demande de réunion VBA Excel/OutlookLiens Hypertexte dans Listbox VBA
Help SVP "sous-répertoires VBA"help programmation perl
Plus de sujets relatifs à : HELP pour comparaison de cellules VBA


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