CathyAstuce

VBA

GEMCCAP CONSEIL INFORMATIQUE BUREAUTIQUE
Formation - Conception Sites Internet
Applications Informatiques Personnalisées
Communauté partenaire Microsoft

TYPE DE DONNÉES

 Boolean  Byte  Integer Long     Single   Double
Date     Currency String     Object   Variant   Défini par vous

Remonter I. Boolean

Ne peut prendre que les valeurs True et False. Lorsque vous convertissez d'autres types de valeur numérique en Boolean, la valeur 0 devient False et toutes les autres deviennent True. Dans le cas inverse, False devient 0 et True devient -1.
Ce type de données utilise 2 octets pour stocker la variable.
Pour convertir une donnée numérique en Boolean, utilisez la fonction CBool, exemple : CBool(10) qui donne la valeur True.

Remonter II. Byte

Ce type de données comprend les valeurs entières de 0 à 255 et utilise 1 octet pour stocker la variable.
Pour convertir une donnée numérique en Byte, utilisez la fonction CByte, exemple : CByte(10.50) donne la valeur 10. La valeur est arrondie à l'entier le plus proche. Si la valeur à convertir est supérieur ou égale à 256, vous provoquez une erreur de dépassement de capacité.

Remonter III. Integer

Ce type de données comprend les valeurs entières de -32 768 à 32 767, utilise 2 octets pour stocker la variable.
Attention au nombre de lignes dans une feuille d'Excel, elles sont de 65536 depuis la version 97, donc si vous devez lire chaque ligne d'une feuille à l'aide d'une variable, celle-ci ne peut être de type Integer, mais doit être de type Long.
Pour convertir une donnée numérique en Integer, utilisez la fonction CInt, exemple : CInt(1000.45) qui donne la valeur 1000. La valeur est arrondie à l'entier le plus proche. Si la valeur à convertir est supérieur ou égale à 32 768 ou inférieur ou égale à -32 769, vous provoquez une erreur de dépassement de capacité.

Remonter IV. Long

Ce type de données comprend les valeurs entières de -2 147 483 648 à 2 147 483 647, utilise 4 octets pour stocker la variable.
Pour convertir une donnée numérique en Long, utilisez la fonction CLng, exemple : CLng(1000.45) qui donne la valeur 1000. Si la valeur à convertir est supérieur ou égale à 2 147 483 647 ou inférieur ou égale à -2 147 483 649, vous provoquez une erreur de dépassement de capacité.

Remonter V. Single

Ce type de données comprend les valeurs à virgules flottantes est comprise entre -3,402823E38 et -1,401298E-45 pour les nombres négatifs et entre 1,401298E-45 et 3,402823E38 pour les positifs, utilise 4 octets pour stocker la variable.
Pour convertir une donnée numérique en Single, utilisez la fonction CSng. Si la valeur à convertir n'est pas comprise entre les valeurs indiquées ci-dessus, vous provoquez une erreur de dépassement de capacité.

Remonter VI. Double

Ce type de données comprend les valeurs à virgules flottantes est comprise entre -1,79769313486231E308 et -4,94065645841247E-324 pour les nombres négatifs et entre 4,94065645841247E-324 et 1,79769313486231E308 pour les positifs, utilise 8 octets pour stocker la variable.
Pour convertir une donnée numérique en Double, utilisez la fonction CDbl. Si la valeur à convertir n'est pas comprise entre les valeurs indiquées ci-dessus, vous provoquez une erreur de dépassement de capacité.

Remonter VII. Date

Ce type de données comprend les dates comprises entre le 1er janvier 100 et le 31 décembre 9999, les heures allant de 0:00:00 à 23:59:59. Toute valeur de date peut être attribuée à une variable de type Date ou de type Double. Ce type utilise 8 octets pour stocker la variable.
La fonction CDate convertit une date sous forme de texte ou de nombre en une donnée Date, exemple : CDate (2.5) donne 01/01/1900 12:00:00. Lors de la conversion d'un nombre en date, la partie entière du nombre est convertie en date, la partie décimale est convertie en heures (1 heure = 1/24). Cette fonction reconnaît les formats de date définis dans les paramètres régionaux de votre système, la date risque de ne pas être convertie correctement si la valeur est fournie dans un format différent de vos paramètres régionaux. 
Utilisez la fonction IsDate pour savoir si la valeur peut être convertie en date ou en heure.

Remonter VIII. Currency

Ce type de données comprend les valeurs entières, avec un décalage de 10 000 afin d'obtenir un nombre à virgule fixe comprenant 15 chiffres à gauche du séparateur décimal et 4 chiffres à droite. Utilisant 8 octets, ces valeurs sont comprises entre -922 337 203 685 477,5808 et 922 337 203 685 477,5807.
Currency est utile pour les calculs monétaires et pour les calculs à virgule fixe.
La fonction CCur convertit une donnée numérique en type Currency, exemple : CCur (1.23456789) donne 1,2346.

Remonter IX. String

Il existe deux types de chaînes :

  • Les chaînes de longueur variable peuvent contenir environ 2^31 caractères.
  • Les chaînes de longueur fixe peuvent contenir de 1 à 2^16 caractères.

La fonction CStr convertit une donnée en chaîne de différentes manière selon son type d'origine :

Type d'origine Résultat
Boolean Chaîne contenant True ou False.
Date Chaîne contenant la date sous le format abrégé de vos paramètres régionaux.
toutes les autres données numériques Chaîne contenant le nombre
Empty Chaîne de longueur nulle "".
Null Renvoie une erreur d'exécution.
Error Chaîne contenant le mot Error suivi du numéro de l'erreur.

Remonter X. Object

Ce type de données fait référence à n'importe quel type d'objet, mais la relation entre la variable et l'objet ne se fait qu'au moment de l'exécution du code, il est donc préférable de préciser le type d'objet dès la déclaration, ainsi la relation est établie pendant la compilation du code (ce qui permet au programme d'être plus rapide et efficace). Object utilise 4 octets en mémoire.

Remonter XI. Variant

Ce type de données peut contenir des données de toutes sortes, à l'exception des données de type String de longueur fixe. C'est le type de données qui est attribué aux variables, lorsque vous les déclarer sans aucune précision (Dim Variable). Les données numériques correspondent à n'importe quel nombre entier ou réel dont la valeur est comprise entre -1,797693134862315E308 et -4,94066E-324 pour les négatifs et entre 4,94066E-324 et 1,797693134862315E308 pour les positifs.
Il vaut mieux éviter de ne travailler qu'avec des variants, cela peut être source d'erreur et utilise beaucoup de mémoire inutilement, mais ce type est pratique dans certains cas. En effet, Variant va s'adapter à la valeur que vous lui attribuez, si celle-ci est un Integer, elle sera considéré par VB comme Integer, mais si après une opération la valeur dépasse la capacité du type Integer, la variable Variant deviendra de type Long ou Single ou Double selon le résultat.

Remonter XII. Défini par vous

Ce type de données peut contenir un ou plusieurs éléments d'un type de données cité ci-dessus, un tableau ou un type de données déjà défini par vous. Pour définir ce genre de type de données, vous devez utiliser l'instruction Type, elle doit être définie dans un module, elle peut être privée ou public. Sa syntaxe est la suivante :
[Private | Public] Type NomVariable
   NomElement1 As type
  [NomElement2 As type]
. . .

End Type
Les mots entre crochet sont facultatifs. Pour mieux comprendre, voici un exemple :
Type Personne
   Nom As String*50
   Prenom As String*50
   Adresse1 As String*75
   Adresse2 As String*75
   Cp As Integer
   Ville As String*50
End Type

Pour utiliser ce genre de type de données, vous déclarez, par exemple, dans une procédure la variable Adherent : Dim Adherent as Personne. La variable Adherent représente donc le nom, le prénom, l'adresse d'une personne. Ensuite, pour attribuer une valeur au nom d'un Adhérent, vous écrivez : Adherent.Nom="Tartempion" et ainsi de suite. Dans une autre procédure, vous pouvez réutiliser votre type Personne avec, par exemple, Dim Client as Personne.

AccueilDébut de la page