begin process at 2012 02 13 18:33:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Divers

 > 

variable de type réel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

variable de type réel

jeudi 14 octobre 2004 à 21:30:22 | variable de type réel

gassane

Bonjour,

Hormis la fonction "IsNumeric" pour les variables de type entier, j'aimerais savoir si quelqu'un de vous sait comment tester si une variable est de type "réel".

J'ai trouvé une solution à ce problème par la méthode suivante :

1. on prend la variable en tant que chaine de caractère
2. On fait une boucle "for" parcourant tous les caractère de la variable

3. Pour chaque caractère, on teste si sa valeur Ascii est comprise entre 48 et 57 (0 à 9) ou égale à 46 ( le "." séparant la partie entière de la pertie décimale)

4. Si on rencontre ce ".", on teste si l'utilisateur n'a pas saisie un "." au caractère précédent.

CODE :

Dim test as boolean
Dim i as integer
Dim tableau(15) as integer

For i = 1 to len(MaVariable)
tableau(i) = mid(MaVariable, i , 1)
Next

test = false
i = 1
While i <= len(MaVariable) and test = false

If i = 1 then

If asc(mid(MaVariable, i , 1)) >= 48 and asc(mid(MaVariable, i , 1)) <= 57 then
i = i + 1
test = false
Else
If asc(mid(MaVariable, i , 1)) = 46 then
i = i + 1
test = false
else
test = true
end if
End if

Else
If asc(mid(MaVariable, i , 1)) >= 48 and asc(mid(MaVariable, i , 1)) <= 57 then
i = i + 1
test = false
Else
If asc(mid(MaVariable, i , 1)) = 46 then

if asc(mid(MaVariable, i - 1 , 1)) = 46 then
test = true
else
i = i + 1
test = false
end if


else
test = true

end if
End if



End if

Wend

if test = true then
" Variable pas de type réel "
else
"Ok"
end if



#########################

Cela est bien joli, long est casse tête mais si vous avez d'autres proposition, à vous de jouer............


Merci encore pour votre aide et votre participation !!!!!!!!!!!!
jeudi 14 octobre 2004 à 21:49:01 | Re : variable de type réel

cboulas

Membre Club
Réponse acceptée !

VarType, fonction


Renvoie une valeur de type Integer qui indique le sous-type d'unevariable.

Syntaxe

VarType(varname)

L'argument varname est une valeur de typeVariant pouvant contenir toute variable à l'exception d'une variable detype défini par l'utilisateur.

Valeurs renvoyées

Constante Valeur Description
vbEmpty 0 Empty (non initialisée)
vbNull 1 Null (aucune donnée valide)
vbInteger 2 Entier
vbLong 3 Entier long
vbSingle 4 Nombre à virgule flottante en simple précision
vbDouble 5 Nombre à virgule flottante en double précision
vbCurrency 6 Valeur monétaire
vbDate 7 Valeur de date
vbString 8 Chaîne
vbObject 9 Objet
vbError 10 Valeur d'erreur
vbBoolean 11 Valeur booléenne
vbVariant 12 Variant (utilisée seulement avec destableaux de variants)
vbDataObject 13 Objet d'accès aux données
vbDecimal 14 Valeur décimale
vbByte 17 Octet
vbUserDefinedType 36 Variant contenant des types définis par l'utilisateur
vbArray 8192 Tableau


Note Lesconstantes mentionnées dans ce tableau sont spécifiées par Visual Basic pour Applications. Vous pouvez par conséquent utiliser leur nom n'importe où dans votre code à la place des valeurs réelles correspondantes.

Remarques

La fonction VarType ne renvoie jamais la valeur pour la constante vbArray elle-même. Elle est toujours ajoutée à une autre valeur pour indiquer un tableau d'un type particulier. La constante vbVariant n'est renvoyée que lorsqu'elle est associée à vbArray pour indiquer que l'argument de la fonction VarType est un tableau de type Variant. Par exemple, la valeur renvoyée pour un tableau de nombres entiers est le résultat de vbInteger + vbArray, ou 8194. Si un objet possède unepropriété par défaut, VarType (object) renvoie le type de celle-ci.

Chris...
Web : Firstruner - eMail : Support
jeudi 14 octobre 2004 à 21:55:58 | Re : variable de type réel

gassane


Merci beaucoup pour votre aide !!!!!!

jeudi 14 octobre 2004 à 22:46:18 | Re : variable de type réel

gassane

J^'ai fait le test avec cette foncton mais cela n'a pas l'air de marcher.
En effet, j'ai tester avec différent nombre et le résultat ne semble pas être celui que j'attends.

Exemple :

mavar est de type variant
si on fais
mavar = 20
mavar = 20.32

alors

VarType(20) cela donne 8
Vartype(20.32) cela donne 8



Uns solution ?
jeudi 14 octobre 2004 à 22:49:41 | Re : variable de type réel

cboulas

Membre Club
Ah attent je vais voir ça car je t'ai choppé cela dans la MSDN

Chris...
Web : Firstruner - eMail : Support
jeudi 14 octobre 2004 à 22:54:34 | Re : variable de type réel

cboulas

Membre Club
Bien alors j'ai testé :


Dim MaVar As Variant
MaVar = 20
Print VarType(MaVar)


Cela retourne : 5 / Virgule flottante double précision


Dim MaVar As Variant
MaVar = 20.12
Print VarType(MaVar)


Cela Retourne : 2 / Entier

Donc chez moi ça marche

Chris...
Web : Firstruner - eMail : Support
vendredi 15 octobre 2004 à 22:54:49 | Re : variable de type réel

gassane

En fait je ne t'ai pas expliqué le problème dans sa globalité. Si je reprends ton exemple, l'affectation d'une valeur à la variable MaVar se fait à partir d'une zone de texte.

Exemple :
Dim mavar as variant

mavar = text1.text

msgbox vartype(mavar) = 8 dans tous les cas

Je pense que dans ce cas précis, VB interprète le variable comme etant une chaine de caractère étant donné quelle provient d'une zone de texte.


C'est donc un problème , puisque dans mon appli les valeurs des variables proviennenet de zones de texte............

vendredi 15 octobre 2004 à 23:41:21 | Re : variable de type réel

cboulas

Membre Club
Ok, essai avec :


Dim mavar as integer

mavar = int(val(text1.text)) 'Demandons un entier du texte convertis en valeur


Chris...
Web : Firstruner - eMail : Support


Cette discussion est classée dans : variable, type, test, mid, mavariable


Répondre à ce message

Sujets en rapport avec ce message

variable de type "date" [ par darwin42 ] salut,je voudrais savoir comment on peut faire pour attribuer une valeur à une variable de type "date" dont le jour se trouve dans un label, je mois d Variable de "type" [ par codebleu ] Bonjour,J'aimerais pouvoir utiliser les valeurs d'une variable déclarée "Public" de la forme "Type...End Type" dans une macro "MaMacro1.xla" en échang variable de type collection sans index [ par Billybobbonnet ] Bonjour,Est-ce qu'il existe en vb .net un type de variable qui fonctionne un peu comme une listbox? L'idée est de ne pas avoir à fournir d'index et de Problème de type de données : égalité entre cellules [ par CandideLeReveur ] Bonjour tout le monde,Je suis en train de faire un programme mais je bute sur la dernière étape. J'ai enregistré des données trimestrielles sur une di Changer le type (private public) d'une variable de classe [ par bizibiz17 ] bonjour,Je souhaiterais savoir s'il est possible de modifier le type d'une variable de classe (passer une propriété public en private) si cette variab Variable structurée enumeration [ par andrebernard ] Bonjour à tousJe voudrais savoir si il est possible d'enumerer une structurePrivate Structure As bit Private Type bit a As String b As String<b Concatener une variable structurée [ par andrebernard ] Bonjour à tousVoila ....si je me créé une variable structurée :<span style="COLOR: #0000f [déplacé VB6 -> VBA] Stocker textbox dans une variable avec boucle [ par Gnain ] Bonjours, Voici mon problème, J'ai 20 textbox qui s'appelle Textbox1,Textbox2,Textbox3...J'usquà Textbox20 Je veut les récupérer dans un genre de tabl type"Variant" [ par mido105 ] slt tt le monde, je développe en vba excel,j'ai une variable de type "variant" qui prend soit un string soit une référence cellule(Range) selon ce q mid... et ? (inverse) [ par Sator ] Bonjour à tous j'aimerais savoir si il existe une function inverse à mid,,,exemple (si on peut dire) : variable = 10001000if mid(variable,5,1)="1" the


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,058 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales