Lavip
Messages postés6Date d'inscriptionvendredi 22 juin 2007StatutMembreDernière intervention25 juin 2007
-
25 juin 2007 à 10:32
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
25 juin 2007 à 11:34
Bonjour,
je débute en VBA et je ne connais pas bien toutes les formules,
mon programme bug mais je sais pas pourkoi, mon but c'est de récupérer la valeur de npas dans la cellule F11 exemple : 0,1 (avec une virgule)
Ensuite je veux dire à l'utilisateur que si "npas" n'est pas égal ni à 0,1 ni à 0,05 c'est pas bon et je dois arrêter le programme (ca je sais pas faire non plus)
Or dans mon cas il me dis toujours que npas est différent de 0,1 ou 0,05, j'ai essayer d'écrire :
If (npas <> 0.1) Or (npas <> 0.05) Then MsgBox ("Le pas doit être de 0,1 ou 0,05")
ElseIf npas 0.1 Then pas 6 Else pas = 14
Endif
Mais ca bugg aussi donc j'ai écris comme ca :
npas = Val(Worksheets(3).Range("F11"))
If (npas <> 0.1) Or (npas <> 0.05) Then MsgBox ("Le pas doit être de 0,1 ou 0,05")
If npas 0.1 Then pas 6 Else pas = 14
Si quelqu'un peut m'aider ca serait cool
Sinon je voudrait également récupérer la position d'une cellule par exemple : recherch parmis (A:1A10) la cellule 0.1 et nvlle variable"A5" position de la cellule.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 25 juin 2007 à 11:01
Salut,
Attention le long ne suporte pas la virgule
pour t'en convaincre regarde ceci:
Dim npas As Long
npas = 0.1
MsgBox npas, ----
[code.aspx?ID=41455 By Renfield]
Si tu veux conserver ta virgule déclare npas en Single:
Dim npas As Single
npas = Worksheets(1).Range("A1").Value
If npas <> 0.1 And npas <> 0.05 Then
Call MsgBox("Le pas doit être de 0,1 ou 0,05", vbCritical Or vbOKOnly)
Exit Sub
End If , ----
[code.aspx?ID=41455 By Renfield]
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 25 juin 2007 à 10:39
Salut,
- Avec quel type à été déclarer npas?
- Ton programme bug => erreur ou simplement il ne fait pas ce que tu souhaites?
- ce n'est pas Or qu'il faudrait utiliser mais ANd
Regarde ceci.
npas = Worksheets(1).Range("A1").Value
If npas <> 0.1 And npas <> 0.05 Then
Call MsgBox("Le pas doit être de 0,1 ou 0,05", vbCritical Or vbOKOnly)
Exit Sub
End If , ----
[code.aspx?ID=41455 By Renfield]
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 25 juin 2007 à 11:34
Bonjour,
voyons ce que fait ceci :
Private Sub Command1_Click()
Dim npas As Single, toto As Single
npas = 0.05 toto IIf(npas 0.1 Or npas = 0.05, IIf(npas = 0.1, 6, 14), 0)
MsgBox IIf(toto, CStr(toto), "pas bon")
End Sub