Message d'erreur instruction IF

Résolu/Fermé
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018 - Modifié le 21 juil. 2018 à 13:09
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018 - 25 juil. 2018 à 08:41
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

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
20 juil. 2018 à 13:39
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 ?

0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
20 juil. 2018 à 13:52
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
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
20 juil. 2018 à 14:04
cette petite fenêtre donne deux information précieuses:
- la ligne qui provoque l'erreur
- une description précise de l'erreur
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
20 juil. 2018 à 14:08
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 ?
0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
20 juil. 2018 à 14:20
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")
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
20 juil. 2018 à 18:50
moi 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
0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
22 juil. 2018 à 15:13
Merci Yg_be , j'essaie et je te fais un retour
0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
23 juil. 2018 à 17:17
Bonjour le forum merci à tous , bonjour Yg_be, grand merci pour le temps accordé ton programme marche parfaitement
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
24 juil. 2018 à 17:23
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....
0
Laetitiayao Messages postés 54 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 31 août 2018
25 juil. 2018 à 08:41
Bonjour Thautheme, merci je vais modifier
0