Egalité entre deux cellules

Résolu
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

  1. Contributeur
    Bonjour

    Tu ne donnes pas de valeurs à A et H ?

    actuellement A et H valent 0 d'où erreur 1004
    1
    1. 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
    2. Contributeur
      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
    3. Contributeur
      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
    4. 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
    5. Contributeur
      Il bugg à un autre endroit maintenant...
      où?
      Au besoin copie-colles ta macro entière dans ton prochain message
      0
  2. 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
    1. 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
    2. Aucune différence c'est juste que je préfère mettre des parenthèses par habitude des autres langages (java, c, c++ ...)
      0