VBA - Condition si nombre à virgule alors...
Résolu
zivodul8
Messages postés
248
Statut
Membre
-
blux Messages postés 2064 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 2064 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Mon problème est simple : je cherche un bout de code VBA qui détermine si un nombre est à virgule ou non. Exemple :
Merci!
Mon problème est simple : je cherche un bout de code VBA qui détermine si un nombre est à virgule ou non. Exemple :
Si n = 3.22 alors
aligner à droite
Sinon ( n = 3)
aligner à gauche
Fin si
Merci!
7 réponses
-
Bonjour,
Ce que je te conseille de faire c'est
SI ta chaine contient un caractère spécial ici un point ALORS
aligner à droite
SINON
aligner à gauche
FIN Si
En fait dès que dans ta chaine tu rencontre l'élément point tu en déduis que c'est un nombre à virgule -
Je n'ai pas réussi à faire un :
Application.WorksheetFunction.Search
Il n'y a pas d'autres méthodes? -
Salut,
tu peux faire ça avec la fonction int(nombre) qui renvoie la partie entière d'un nombre.
Si elle est égale au nombre lui-même, c'est qu'il n'y a pas de virgule.
IF INT(nombre) = nombre THEN ... END IF
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
J'ai un autre (rapide) problème. Je cherche à déterminer le numéro de la ligne où en colonne, deux cellules vides se suivent verticalement. Voilà ce que j'ai fait mais cela ne fonctionne pas :
Sub NbLigne() Dim NbLigne, i As Integer i = 1 Do While Range("A" & i).Value <> "" And Range("A" & i + 1).Value <> "" NbLigne = i i = i + 1 Loop MsgBox NbLigne End Sub
Merci! -
J'ai résolu, je viens de découvrir qu'en VBA le ET se traduisait par
or
et nonand
!-
-
Ce n'est pas en VBA, c'est en logique booléenne, mais uniquement à cause du fait que tu as des <>, si tu avais des =, il te faudrait mettre un AND.
Les explications ici :
https://forums.commentcamarche.net/forum/affich-16025052-shell-condition
Et comme je le dis, c'est un truc vieux comme les ordinateurs ;-) -
-
-
Ce que tu peux faire, c'est :
Dim nombre1 as integer Dim nombre2 as string Nombre1=Int(nombre2) If nombre2%nombre1 = 0 then décaler a gauche Sinon décaler à droite end if