OVH Cloud OVH Cloud

chaîne vide ("")>1 ! ?

4 réponses
Avatar
LANIMAL
Bon dimanche (studieux pour moi) ;-)
Dans le code ci-dessous (Private Sub Worksheet_Change…) la cellule H13 a
pour valeur le résultat de la fonction =Si(… ; entier >0 ; "") qui peut
donc être soit un nombre entier > 0, soit une chaîne vide.
Dans Excel "" > 1 est « Faux »
Or dans le code ci-dessous la ligne Réponse = MsgBox(…) est exécutée
même quand Cells(13, 8) est vide ("").
J’ai essayé de remplacer Cells(13, 8).Value par [H13] : le pb subsiste.
Si je modifie la condition ainsi : =Si(… ; entier >0 ;0) , le If
fonctionne normalement.
Je subodore donc le pb, mais ne sais pas le résoudre, car il me faut
bien conserver un vide ou un espace ou un tiret (-) quand la condition
=Si(…) n’est pas remplie.

If Cells(13, 8).Value > 1 Then
Réponse = MsgBox("Vous venez de …", …, "Attention !")
End If

If Réponse = vbOK Then
...
Merci

4 réponses

Avatar
Pierre CFI [mvp]
bonjour
pourquoi ne pas tester le ""
If Cells(13, 8) <> "" Then

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
Access http://users.skynet.be/mpfa/
Excel http://www.excelabo.net
Site perso
http://access.cfi.free.fr
"LANIMAL" a écrit dans le message de news:eeO8Q%
Bon dimanche (studieux pour moi) ;-)
Dans le code ci-dessous (Private Sub Worksheet_Change…) la cellule H13 a
pour valeur le résultat de la fonction =Si(… ; entier >0 ; "") qui peut
donc être soit un nombre entier > 0, soit une chaîne vide.
Dans Excel "" > 1 est « Faux »
Or dans le code ci-dessous la ligne Réponse = MsgBox(…) est exécutée
même quand Cells(13, 8) est vide ("").
J’ai essayé de remplacer Cells(13, 8).Value par [H13] : le pb subsiste.
Si je modifie la condition ainsi : =Si(… ; entier >0 ;0) , le If
fonctionne normalement.
Je subodore donc le pb, mais ne sais pas le résoudre, car il me faut
bien conserver un vide ou un espace ou un tiret (-) quand la condition
=Si(…) n’est pas remplie.

If Cells(13, 8).Value > 1 Then
Réponse = MsgBox("Vous venez de …", …, "Attention !")
End If

If Réponse = vbOK Then
...
Merci


Avatar
Rai
Bonjour,

Il te suffit de tester la valeur du contenu de H13 (fonction Val()).
Pour simplifier tu peux omettre le .value qui est la propriété par défaut.

If Val(Cells(13, 8)) > 1 Then
Ou
If Val([H13]) > 1 Then

Bon Dimanche


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour répondre...


"LANIMAL" a écrit dans le message de news: eeO8Q%
Bon dimanche (studieux pour moi) ;-)
Dans le code ci-dessous (Private Sub Worksheet_Change…) la cellule H13 a
pour valeur le résultat de la fonction =Si(… ; entier >0 ; "") qui peut
donc être soit un nombre entier > 0, soit une chaîne vide.
Dans Excel "" > 1 est « Faux »
Or dans le code ci-dessous la ligne Réponse = MsgBox(…) est exécutée
même quand Cells(13, 8) est vide ("").
J’ai essayé de remplacer Cells(13, 8).Value par [H13] : le pb subsiste.
Si je modifie la condition ainsi : =Si(… ; entier >0 ;0) , le If
fonctionne normalement.
Je subodore donc le pb, mais ne sais pas le résoudre, car il me faut
bien conserver un vide ou un espace ou un tiret (-) quand la condition
=Si(…) n’est pas remplie.

If Cells(13, 8).Value > 1 Then
Réponse = MsgBox("Vous venez de …", …, "Attention !")
End If

If Réponse = vbOK Then
...
Merci


Avatar
LANIMAL
Bonjour, Il te suffit de tester la valeur du contenu de H13 (fonction Val()).
Pour simplifier tu peux omettre le .value qui est la propriété par défaut.

If Val(Cells(13, 8)) > 1 Then
Ou
If Val([H13]) > 1 Then


Merci Raymond, tu me fais faire 2 petits pas de + dans VBA.
Je pensais que .Value faisait le même job que Val().
Confusion entre propriété et fonction.
Distinction pas encore très claire chez le débutant que je suis.
Merci encore.

Avatar
LANIMAL

bonjour
pourquoi ne pas tester le ""
If Cells(13, 8) <> "" Then

Ben oui ... Que je suis bête !

Et pourtant dans Excel j'ai pratiqué cette alternative des 100aines de fois.
Comme tu peux t'en douter, je débute avec VBA et la panique me coupe mes
réflexes.
Merci encore.