Message d'erreur instruction IF
Résolu
Laetitiayao
Messages postés
54
Statut
Membre
-
Laetitiayao Messages postés 54 Statut Membre -
Laetitiayao Messages postés 54 Statut Membre -
Bonjour le forum,
j'essaie d'éxecuter ce bout de code mais j'ai un message d'erreur
cordialement
Laetitia
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
-
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 ?
-
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 -
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 ? -
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")- 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
-
-
-
Bonjour le forum merci à tous , bonjour Yg_be, grand merci pour le temps accordé ton programme marche parfaitement
-
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....