Message d'erreur instruction IF [Résolu/Fermé]

Signaler
Messages postés
54
Date d'inscription
vendredi 13 juillet 2018
Statut
Membre
Dernière intervention
31 août 2018
-
Messages postés
54
Date d'inscription
vendredi 13 juillet 2018
Statut
Membre
Dernière intervention
31 août 2018
-
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

Messages postés
30284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
3 013
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 ?

Messages postés
54
Date d'inscription
vendredi 13 juillet 2018
Statut
Membre
Dernière intervention
31 août 2018

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
Messages postés
13254
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 novembre 2020
743 >
Messages postés
54
Date d'inscription
vendredi 13 juillet 2018
Statut
Membre
Dernière intervention
31 août 2018

cette petite fenêtre donne deux information précieuses:
- la ligne qui provoque l'erreur
- une description précise de l'erreur
Messages postés
30284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
3 013
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 ?
Messages postés
54
Date d'inscription
vendredi 13 juillet 2018
Statut
Membre
Dernière intervention
31 août 2018

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")
Messages postés
13254
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 novembre 2020
743 >
Messages postés
54
Date d'inscription
vendredi 13 juillet 2018
Statut
Membre
Dernière intervention
31 août 2018

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
Messages postés
54
Date d'inscription
vendredi 13 juillet 2018
Statut
Membre
Dernière intervention
31 août 2018

Merci Yg_be , j'essaie et je te fais un retour
Messages postés
54
Date d'inscription
vendredi 13 juillet 2018
Statut
Membre
Dernière intervention
31 août 2018

Bonjour le forum merci à tous , bonjour Yg_be, grand merci pour le temps accordé ton programme marche parfaitement
Messages postés
1404
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
18 novembre 2020
145
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....
Messages postés
54
Date d'inscription
vendredi 13 juillet 2018
Statut
Membre
Dernière intervention
31 août 2018

Bonjour Thautheme, merci je vais modifier