CONDITION comparé deux celulle

Fermé
Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019 - 10 sept. 2018 à 15:45
yg_be Messages postés 23304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 novembre 2024 - 11 sept. 2018 à 17:28
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 ...
A voir également:

2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
10 sept. 2018 à 15:58
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
Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019
10 sept. 2018 à 16:12
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
yg_be Messages postés 23304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 novembre 2024 1 549 > Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019
10 sept. 2018 à 16:20
pas de next?
0
Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019
10 sept. 2018 à 16:18
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
yg_be Messages postés 23304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 novembre 2024 1 549 > Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019
10 sept. 2018 à 16:21
et le compteur s’arrête à combien?
0
Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019
10 sept. 2018 à 16:28
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
yg_be Messages postés 23304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 novembre 2024 Ambassadeur 1 549
10 sept. 2018 à 16:07
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
Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019
10 sept. 2018 à 16:21
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
yg_be Messages postés 23304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 novembre 2024 1 549 > Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019
10 sept. 2018 à 16:24
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
Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019
10 sept. 2018 à 16:31
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
yg_be Messages postés 23304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 novembre 2024 1 549 > Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019
10 sept. 2018 à 17:29
peux-tu partager ton code complet, du début à la fin? modifié tel que suggéré en #2.
0
Noha-Diak Messages postés 20 Date d'inscription samedi 8 septembre 2018 Statut Membre Dernière intervention 26 février 2019
11 sept. 2018 à 11:30
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