CONDITION comparé deux celulle

Noha-Diak Messages postés 25 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, j'ai un petit programme qui doit comparé deux cellule dans deux feuille différente ex : Feuille 1 = A2 , Feuille 2 = A2, le but est de savoir si le contenu texte de cellule A2 Feuille 1 est égale a A2 Feuille 2,

voici le code :

For i = 2 To NblF1

CritereF1 = Sheets(NomF1).Cells(i, colcpt1) & Sheets(NomF1).Cells(i, colcpt2) & Sheets(NomF1).Cells(i, colcpt3)
For j = 2 To NblF2
CritereF2 = Sheets(NomF2).Cells(j, colcpt1) & Sheets(NomF2).Cells(j, colcopt2) & Sheets(NomF2).Cells(i, colcpt3)

If (CritereF1 = CritereF2) Then
MsgBox "Les deux critère sont égaux"
End If

La condition ne s’exécute pas et je ne vois pas mon erreur :( , au secours ...

2 réponses

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    Bonjour Noha- Diak, bonjour le forum,

    Incompréhensible !... Tu parle de deux cellules, le code lui en montre 3. Tu ne nous donnes qu'un bout de code et nous ne savons rien des variables colcpt1, colcpt2 et colcpt3 ni de NblF1... Je vois mal comment on pourrait t'aider !... Nous ne somme pas des devins. Si tu fais pas un effort nous n'en ferons pas non plus...
    0
    1. Noha-Diak Messages postés 25 Statut Membre
       
      Dim NomF1
      Dim NomF2
      Dim NbCol As Integer
      Dim NbLig As Integer
      Dim i, j, NblF1, NblF2 As Integer

      NomF1 = Sheets(1).Name
      NomF2 = Sheets(2).Name

      If (NomF1) = "REF_VALEUR_FAMILLE" Then
      MsgBox "le fichier est bien "

      colcpt1 = 1
      colcpt2 = 2
      colcpt3 = 6
      For i = 2 To NblF1 ' i est égale a 2 pour NblF1

      CritereF1 = Sheets(NomF1).Cells(i, colcpt1) & Sheets(NomF1).Cells(i, colcpt2) & Sheets(NomF1).Cells(i, colcpt3)
      For j = 2 To NblF2 ' j est égale a 2 pour NblF2
      CritereF2 = Sheets(NomF2).Cells(j, colcpt1) & Sheets(NomF2).Cells(j, colcopt2) & Sheets(NomF2).Cells(i, colcpt3)
      If (CritereF1 = CritereF2) Then
      MsgBox "Le critère correspond"
      ' colorie la cellule en rouge

      End If

      Voici le code au complét, c'est mon premier message sur un forum, je m'excuse pour le manque d'information :(
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Noha-Diak Messages postés 25 Statut Membre
         
        pas de next?
        0
    2. Noha-Diak Messages postés 25 Statut Membre
       
      je compare 3 cellule plus précisément la cellule A B et F qui contiennent chacun une information extrait d'une base que j'ai corriger manuellement, le but est de extraire les donnée de la même base tout les 15 jours pour comparé la feuille 1 avec la feuille 2, colcpt1 = A , colcpt2 = B , colcpte3 = F.
      je compteur commence a 2 parce que la première donné se trouve a la deuxième ligne
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Noha-Diak Messages postés 25 Statut Membre
         
        et le compteur s’arrête à combien?
        0
    3. Noha-Diak Messages postés 25 Statut Membre
       
      normalement a 7722 s'il n' y a pas eu de changement sur les donne de la table dans les 15 dernier jours , je souhaite juste avoir la solution pour comparé le contenu des deux cellule dans les deux feuille
      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, suggestions:
    - ajouter "option explicit" en début de module.
    - modifier provisoirement ton code, pour comprendre ce qu'il fait:
    If (CritereF1 = CritereF2) Then 
        MsgBox "Les deux critère sont égaux" 
    else
        MsgBox "Les deux critères sont différents: " &  CritereF1 & ", " & CritereF2  
    End If  
    0
    1. Noha-Diak Messages postés 25 Statut Membre
       
      Bonjour, je vient de faire le test du code :

      If (CritereF1 = CritereF2) Then
      MsgBox "Les deux critère sont égaux"
      else
      MsgBox "Les deux critères sont différents: " & CritereF1 & ", " & CritereF2
      End If

      Le résultat qu'il m'affiche est que les deux critère sont égaux
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Noha-Diak Messages postés 25 Statut Membre
       
      as-tu testé ce code isolément, ou bien as-tu adapté ton code principal? je suggérais d'ajouter le else dans ton if existant...
      0
    3. Noha-Diak Messages postés 25 Statut Membre
       
      j'ai tester avec la méthode "set" puis comparé sauf que cela m'affichait toujours la même réponse dans ma condition peut importe quelle soit vrais ou fausse ^^
      0
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Noha-Diak Messages postés 25 Statut Membre
       
      peux-tu partager ton code complet, du début à la fin? modifié tel que suggéré en #2.
      0
    5. Noha-Diak Messages postés 25 Statut Membre
       
      sa fonctionner pour le moment , le but est si le fichier ouvert est un des nom de fichier référencer compare le première feuille a la second si il y a une erreur colorier le fond de la cellule en une autre couleur.

      Si pour vous sa semble correct et logique , votre opinion et expérience m’intéresse j'ai contourné le problème avec une boucle qui me semble plus simple d'utilisation

      J'ai trouvé une autre méthode, je vous partage le code :

      Dim NomF1
      Dim NomF2
      Dim NbLig As Integer
      Dim i As Integer
      Dim colA, colB, colF



      NomF1 = Sheets(1).Name
      NomF2 = Sheets(2).Name



      If (NomF1) = "Nomfichier" Then
      MsgBox "le fichier est 'Nomfichier' "

      colA = 1 ' colonne A utiliser pour ce fichier
      colB = 2 ' colonne B utiliser pour ce fichier
      colF = 6 ' Colonne F utiliser pour ce fichier


      i = 2 ' on initialise le compteur a 2 qui correspond a la première ligne que l'on verifie
      NbLig = Cells.SpecialCells(xlCellTypeLastCell).Row ' compte le nombre de ligne du fichier
      While (i <= NbLig)
      CritereF1 = Sheets(NomF1).Cells(i, colA)
      CritereF2 = Sheets(NomF2).Cells(i, colA)
      CritereF3 = Sheets(NomF1).Cells(i, colB)
      CritereF4 = Sheets(NomF2).Cells(i, colB)
      CritereF5 = Sheets(NomF1).Cells(i, colF)
      CritereF6 = Sheets(NomF2).Cells(i, colF)


      If ((CritereF1) = (CritereF2)) Then ' ligne trouvé
      'MsgBox "les critere des colonnes A correspond"
      Else
      'MsgBox "les critere des colonnes A Ne correspond pas ont colorie"
      MaChaine1 = CStr(i)

      Range("A" & i).Select
      With Selection.Interior
      .Pattern = xlSolid
      .PatternColorIndex = xlAutomatic
      .Color = 255
      .TintAndShade = 0
      .PatternTintAndShade = 0
      End With
      End If

      If ((CritereF3) = (CritereF4)) Then
      'MsgBox "les critere des colonne B correspond"
      Else
      'MsgBox "les critere des colonnes B Ne correspond pas ont colorie"
      MaChaine1 = CStr(i)

      Range("B" & i).Select
      With Selection.Interior
      .Pattern = xlSolid
      .PatternColorIndex = xlAutomatic
      .Color = 255
      .TintAndShade = 0
      .PatternTintAndShade = 0
      End With
      End If

      If ((CritereF5) = (CritereF6)) Then
      'MsgBox "les critere des colonne F correspond"
      Else
      'MsgBox "les critere des colonnes F Ne correspond pas ont colorie"
      MaChaine1 = CStr(i)

      Range("F" & i).Select
      With Selection.Interior
      .Pattern = xlSolid
      .PatternColorIndex = xlAutomatic
      .Color = 255
      .TintAndShade = 0
      .PatternTintAndShade = 0
      End With
      End If
      i = i + 1
      Wend
      i = i - 1
      MsgBox ("Il y a " & i & " Ligne dans le fichier Nom fichier")
      0