Message d'erreur instruction IF

Résolu
Laetitiayao Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -  
Laetitiayao Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

4 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Laetitiayao Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Laetitiayao Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
Merci Yg_be , j'essaie et je te fais un retour
0
Laetitiayao Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   160
 
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   Statut Membre Dernière intervention  
 
Bonjour Thautheme, merci je vais modifier
0