Novices

Résolu
Lavip Messages postés 6 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 25 juin 2007 - 25 juin 2007 à 10:32
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 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.

Merci d'avance.

4 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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]

@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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]

@+: Ju£i?n
Pensez: Réponse acceptée
0
Lavip Messages postés 6 Date d'inscription vendredi 22 juin 2007 Statut Membre Dernière intervention 25 juin 2007
25 juin 2007 à 10:50
Je l'ai déclarée en Long la variable npas, mais ca me renvoie toujours le message d'erreur...
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
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
0