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
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
-
ModérateurBonjour,
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 -
Contributeur@Laetitiayaocette petite fenêtre donne deux information précieuses:
- la ligne qui provoque l'erreur
- une description précise de l'erreur -
ModérateurOui 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") -
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
-
-
Merci Yg_be , j'essaie et je te fais un retour
-
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....