Message d'erreur instruction IF

Résolu
Bonjour le forum,
j'essaie d'éxecuter ce bout de code mais j'ai un message d'erreur
If S3.Range(Cells(5, 17), Cells(900, 17)) >= S3.Cells(3, 17) And S3.Range(Cells(5, 17), Cells(900, 17)) >= S3.Cells(2, 17) Then
        S3.Range(Cells(5, 37), Cells(900, 37)).Value = Application.WorksheetFunction.VLookup(S3.Cells(5, 36), S3.Range(Cells(5, 16), Cells(900, 17)), 2, False)

End If
mais j'ai un message d'erreur , j'ai beau verifié mais je ne trouve pas le problème. Pourriez - vous m'aider à regarder? je vous remercie infiniment.

cordialement

Laetitia

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

4 réponses

  1. Bonjour le fil, bonjour le forum,

    J' aurais plutôt écrit :
    S3.Range(S3.Cells(5, 17), S3.Cells(900, 17))

    à la place de :
    S3.Range(Cells(5, 17), Cells(900, 17))

    Pour éviter toute confusion....
    1. Bonjour Thautheme, merci je vais modifier
  2. Bonjour le forum merci à tous , bonjour Yg_be, grand merci pour le temps accordé ton programme marche parfaitement
    1. Modérateur
      Bonjour,

      1 - Pour poster correctement son code sur le forum : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

      2 - Quel message d'erreur ?

      1. Bonjour jordane 45,
        j'aurai du écrire le code comme suit:

        If S3.Range(Cells(5, 17), Cells(900, 17)) >= S3.Cells(3, 17) And S3.Range(Cells(5, 17), Cells(900, 17)) >= S3.Cells(2, 17) Then
        S3.Range(Cells(5, 37), Cells(900, 37)).Value = Application.WorksheetFunction.VLookup(S3.Cells(5, 36), S3.Range(Cells(5, 16), Cells(900, 17)), 2, False)
        
        End If


        j'ai la petite fenêtre du débug qui s'ouvre
      2. Contributeur
        @Laetitiayaocette petite fenêtre donne deux information précieuses:
        - la ligne qui provoque l'erreur
        - une description précise de l'erreur
      3. Modérateur
        Oui et la petite fenêtre... elle te dit "erreur d'incompatibilité de type ..'"
        Bref...
        Tu essayes de comparer un PLAGE de plusieurs cellules avec UNE seule cellule ?
        Pas sûr que ça fonctionne......

        Que cherches tu à faire exactement ??
        Que souhaites tu (rédigé dans un français clair et précis...) réellement comparer ?
      4. D'accord ce que je souhaite faire:
        Si les valeurs présentes dans la plage "Q5:Q900" de ma feuille 3 sont supérieures et égales à la valeur presente en "Q3" et supérieures ou égales à la valeur presente en "Q2", alors ramener les valeurs de la plage "P5:Q900" deuxiéme colonne dans ma plage" AK5:AK900")
      5. Contributeur
        @Laetitiayaomoi je commencerais ainsi, pour faire le test:
        Option Explicit
        
        Dim cell As Range, ok As Boolean, max, S3
        ok = True
        If S3.Cells(3, 17) > S3.Cells(2, 17) Then
            max = S3.Cells(3, 17)
        Else
            max = S3.Cells(2, 17)
        End If
        For Each cell In S3.Range(Cells(5, 17), Cells(900, 17))
            If cell < max Then
                ok = False
                Exit For
            End If
        Next cell
        If ok Then
            S3.Range(Cells(5, 37), Cells(900, 37)).Value = _
                Application.WorksheetFunction.VLookup(S3.Cells(5, 36), S3.Range(Cells(5, 16), Cells(900, 17)), 2, False)
        End If