Egalité entre deux cellules

Résolu
roupille008 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -  
roupille008 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Salut tout le monde!
Alors, j'aimerais mettre une condition d'égalité entre deux cellules dans mon bloc if, pour l'instant j'ai essayé les formes suivantes qui ont toutes échouées:

Dim a As Integer
Dim h As Integer

If Worksheets("Feuil1").Range(Cells(a, 1)) = Worksheets("Feuil1").Range(Cells(h, 1)) Then

If Worksheets("Feuil1").Range(Cells(a, 1)).value = Worksheets("Feuil1").Range(Cells(h, 1)).value Then

If Cells(a, 1) = Cells(h, 1) Then

If Range(Cells(a, 1)) = Range(Cells(h, 1) Then

Il me renvoie toujours l'erreur suivante:
erreur d'exécution 1004:
Erreur définie par l'application ou par l'objet.

Voilà, si vous pourriez m'aider ce serait sympa. D'autant que j'ai le sentiment que c'est tout bête comme erreur.

Merci!


PS: aussi, après le then ya un call machin truc mais il n'est pas surligné par le débogueur.

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

Tu ne donnes pas de valeurs à A et H ?

actuellement A et H valent 0 d'où erreur 1004
1
roupille008 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
En fait, je leur donne une valeur dans une macro précédente,

J'ai remis une valeur au début de celle-ci, et ça m'affiche toujours le même message d'erreur.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
En fait, je leur donne une valeur dans une macro précédente,

Ok, mais il ne faut pas les déclarer dans cette macro mais les déclarer en public ou globales

ou tu créées une macro paramétrées

D'autre part, je n'ai pas vu de End If

Je regarde ta macro...
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Range(cells(a,1)) est une erreur de syntaxe
c'est soit Range("A" & a)
ou
cells(a,1)
essaies cette macro test
With Sheets("feuil1")  
     If .Cells(a, 1) = .Cells(h, 1) Then MsgBox "ok"  
End With
0
roupille008 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
yop!
Ta macro test marche. J'en conclu quoi?
J'ai écrit mes conditions comme ça pour l'instant. (avec with et .cells)

Il bugg à un autre endroit maintenant...
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Il bugg à un autre endroit maintenant...
où?
Au besoin copie-colles ta macro entière dans ton prochain message
0
scinarf Messages postés 1119 Date d'inscription   Statut Membre Dernière intervention   252
 
Bonjour,

Avez vous initialisé les valeur a et h ? Si elles ne sont pas initialisées, le compilateur renvoie une erreur car impossible d'identifier les cellules concernées.

Sinon les formules suivantes fonctionnent:
If (Cells(a, 1) = Cells(h, 1)) Then
if sheets("Feuil1").cells(a,1) = sheets("Feuil2").cells(h,1) then
1
roupille008 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
Alors, j'ai tenté l'écriture suivante:
If (Cells(a, 1) = Cells(h, 1)) Then

et cela semble marcher.

Par contre je ne comprend pas ce qu'apporte les parenthèses supplémentaires.
Quelle est la différence pour vba entre les écritures suivantes:
If (Cells(a, 1) = Cells(h, 1)) Then
If Cells(a, 1) = Cells(h, 1) Then

et merci pour ces réponses rapides.
0
scinarf Messages postés 1119 Date d'inscription   Statut Membre Dernière intervention   252
 
Aucune différence c'est juste que je préfère mettre des parenthèses par habitude des autres langages (java, c, c++ ...)
0