Erreur13 types incompatibles

S

steplof

Guest
Bonsoir

Quelqu'un peut il m'expliquer pourquoi la ligne ci-après me renvoie une erreur de type 13 Incompatibilité de type?
If Sheets(1).Range("b" & LigneSource & ":b" & LigneSource).Value = "p"_ Or "rst" Or "bet" Or "vt" Then

Moi j'arrive pas à voir

Merci de votre aide
 
S

steplof

Guest
Bon je précise vu que je viens de découvrir quelque chose:

j'ai cru comprendre que ma ligne ne me permet pas de comparer si la valeur dans la cellule b a la valeur p ou la valeur rst oula valeur bet ou la valeur vt?

alors comment ecris je en vb l'équivalent de
SI(OU(B18="P";B18="RST";B18="beT";B18="Vt");J18;0).

Merci de votre aide
Steplof qui cherche...
 
@

@+Thierry

Guest
Salut StepLof,

Je ne sais pas ce que tu veux faire... Mais déjà sans chercher... Tu fais une erreur (probablement c'est la 13, "Jean Cé Rien" !!) mais une erreur tout de même... Et même 2 il me semble...

If Sheets(1).Range("b" & LigneSource & ":b" & LigneSource).Value

Cà c'est faux... Tu es en train de spécifier une "Array" qui aurait la même colonne et la même ligne... Donc déjà y a pas bon. Faudrait simplement :

If Sheets(1).Range("b" & LigneSource).Value.... Ce serait déja mieux...

Ensuite le If / Or ne peut pas être géré tel quel.... Il vaut mieux que tu essaies en créant une Variable String comme ceci : (pas fait de test)

VarValeur = Sheets(1).Range("b" & LigneSource).Value

If VarValeur = "p" or VarValeur = "rst" or VarValeur = "bet" or VarValeur = "vt" then
MsgBox "Pas de prstbetvt !!!"
End If

Je n'ai pas essayé... Mais je pense que ce devrait mieux fonctionner....

Dis moi
Dèjà la fin du Week End !!! Bonne fin de Dimanche
@+Thierry


PS vu que tu ne montre pas l'initialisation de "LigneSource", il faut impérativement que cette initialisation soit faite avant d'arriver à cette ligne... Sinon c'est encore une source d'erreur. De plus cette LigneSource ne doit retourner qu'une variable Integer ou Long (Num Entier)
 
S

steplof

Guest
Donc en fait c'est tout bête, tu viens de m'éclairer sur un truc, c'est qu'en fait j'avais adapté ton sub reportimpayé, mais moi j'avais pas besoin de reporter toute la ligne, juste des morceaux puis faie des opérations dessus ce que j'avais pas compris c'est que pour appeler juste une cellule Sheets(1).Range("b" & LigneSource).Value suffisait. 1

Enfin 2 c'était la syntaxe pour utiliser le or avec le if qui me manquait

ça je l'ai résolu avec un select case Sheets(1).Range("b" & LigneSource).Value

Case "p", "bet", "rst", "vt"

Else Case


End select

et ça marche!!

En tout cas merci.
Steplof qui apprend...
 

Discussions similaires

Réponses
5
Affichages
112

Statistiques des forums

Discussions
312 185
Messages
2 086 011
Membres
103 093
dernier inscrit
Molinari