Novices

Résolu
Signaler
Messages postés
6
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
25 juin 2007
-
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
-
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

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
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
Messages postés
6
Date d'inscription
vendredi 22 juin 2007
Statut
Membre
Dernière intervention
25 juin 2007

Je l'ai déclarée en Long la variable npas, mais ca me renvoie toujours le message d'erreur...
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
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