FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ
Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017 Ajouter une question
Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).
Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.
- À quoi servent les variables et comment les utiliser ?
- Quels sont les types de variables disponibles dans AOO/LibO ?
- Que signifie l'instruction Option Explicit ?
- Comment est définie la portée des variables ?
- À quoi sert l'instruction Const ?
- Quelles sont les fonctions de conversion des types de données ?
- Comment tester la présence d'un argument optionnel dans une fonction ?
- Comment déterminer si une variable contient une valeur Null ?
- Comment vérifier si une variable type Variant a été initialisée ?
- Comment retrouver le type de donnée contenu dans une variable Variant ?
Les variables servent à stocker et manipuler des informations dans une macro.
Une variable possède :
un nom qui permet d'accéder aux données qu'elle contient : « maVariable » ;
un type de données : par exemple, String et Integer dans les procédures ci-dessous.
La macro affecte une chaîne de caractères (Bonjour !) dans une variable (maVariable), puis l'affiche dans un MsgBox :
Code vb : | Sélectionner tout |
1 2 3 4 5 6 | Sub afficherMessage Dim maVariable As String maVariable = "Bonjour !" MsgBox maVariable End Sub |
Les données peuvent être modifiées pendant l'exécution de la macro.
Un exemple pour affecter une valeur numérique à une variable, l'afficher dans un MsgBox, ajouter 20 à la valeur de cette variable, puis afficher le nouveau résultat :
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | Sub afficherValeur() Dim maVariable As Integer maVariable = 10 MsgBox maVariable maVariable = maVariable + 20 MsgBox maVariable End Sub |
Evitez de nommer les variables en utilisant des mots clés ou instructions/fonctions réservés par l'application (par exemple Val, Left...).
Le nom des variables doit commencer par un caractère alphabétique et ne pas excéder 255 caractères.
Les noms ne doivent pas contenir de caractères spéciaux.
Le caractère underscore _ est accepté. Essayez de donner des noms les plus explicites possibles afin de faciliter la relecture de votre programme.
Le type de données doit être défini en fonction de la valeur prise par la variable. Une variable définie de façon incorrecte pour un contexte particulier, peut générer un message d'erreur. Chaque type de donnée utilise un espace mémoire. Il est donc important de définir le bon type de données pour libérer de l'espace mémoire et ne pas ralentir inutilement le traitement de la macro.
Toutes les variables sont converties en type Variant si aucun autre type de données n'est explicitement déclaré.
En cas de déclaration de plusieurs variables avec le même Dim, vous devez préciser le type de donnée pour chaque variable.
Par exemple, si pour définir trois variables de type String (strVar1, strVar2 et strVar3) vous écrivez :
Dim strVar1 , strVar2 , strVar3 As StringDans ce cas strVar1 et strVar2 seront de type Variant.
Pour y remédier et obtenir trois variables String, Il faut écrire :
Dim strVar1 As String , strVar2 As String , strVar3 As String
Le type de données doit être défini en fonction de la valeur prise par la variable.
Boolean :
Données pouvant prendre exclusivement les valeurs logiques True et False.
Les variables Boolean sont stockées sous la forme de nombres codés sur 16 bits .
Integer :
Données contenant des nombres entiers, de 16 bits, compris entre -32 768 et 32 767.
Le signe % est le caractère de déclaration du type Integer.
Remarque :
Si vous écrivez « Dim X As Integer », alors que la donnée est décimale (par exemple X=5.9), la valeur renvoyée sera égale à 6. La valeur de la variable est arrondie à l'entier le plus proche.
Long :
Nombre entier de 32 bits dont la valeur est comprise entre -2 147 483 648 et 2 147 483 647.
Le signe et commercial (&) est le caractère de déclaration du type Long.
Si vous lui affectez un nombre décimal, la valeur de la variable est arrondie à l'entier le plus proche.
Currency :
Données de 64 bits dont la plage de valeurs s'étend de -922 337 203 685 477,5808 à 922 337 203 685 477,5807.
Le signe @ est le caractère de déclaration du type Currency.
Ce type de donnée est utilisé dans les calculs monétaires ou dans les calculs à virgule fixe pour lesquels une grande précision est requise.
Single :
Type de donnée, sur 32 bits, qui regroupe des variables à virgule flottante en simple précision sous forme de nombres à virgule flottante, dont la valeur est comprise entre -3,402823E38 et -1,401298E-45 pour les valeurs négatives, et entre 1,401298E-45 et 3,402823E38 pour les valeurs positives.
Le point d'exclamation (!) est le caractère de déclaration du type Single.
Double :
Type de donnée, sur 64 bits, stockant les nombres à virgule flottante en double précision compris entre -1,79769313486231E308 et -4,94065645841247E-324 pour les valeurs négatives, et entre 4,94065645841247E-324 et 1,79769313486232E308 pour les valeurs positives.
Le signe dièse (#) est le caractère de déclaration du type Double.
Date :
Type de données, sur 64 bits, utilisé pour stocker les dates et les heures.
String :
Type de données,sur 64 bits, utilisé pour stocker des chaînes de caractères.
Une donnée de type String peut inclure lettres, nombres, espaces et signes de ponctuation.
Le signe dollar ($) est le caractère de déclaration du type String.
Variant :
Peut contenir tous les types de données.
Toutes les variables sont converties en type Variant si aucun autre type de données n'est explicitement déclaré.
Object :
Type de données représentant toute référence Objet.
L'instruction Option Explicit est utilisée pour imposer la déclaration explicite de toutes les variables dans un module. Cette instruction doit apparaître en tête de module, avant toute procédure.
L'instruction Option Explicit permet d'identifier une variable non déclarée ou mal orthographiée (une erreur se produit).
Les variables locales :
Une variable déclarée à l'intérieur d'une procédure (Sub ou Function) ne sera valide qu'à l'intérieur de celle-ci et uniquement jusqu'à sa fermeture.
Les variables publiques :
Dans certains cas, une variable doit rester valide pour toutes les procédures, tous les modules de toutes les bibliothèques, ou après la fermeture d'une procédure ou d'une fonction. La déclaration des variables doit alors se faire en tête de module et en dehors des procédures Sub ou Function :
GLOBAL VarName As TYPENAME
La variable est valide tant que la session OpenOffice.org est ouverte.
PUBLIC VarName As TYPENAME
La variable est valide dans tous les modules.
PRIVATE VarName As TYPENAME
La variable est valide dans ce module.
DIM VarName As TYPENAME
La variable est valide dans ce module.
L'instruction Const permet de déclarer les constantes.
Une constante est un élément nommé conservant une valeur (chaîne, donnée numérique...) identique pendant toute l'exécution d'un programme.
Les constantes peuvent remplacer des valeurs réelles partout dans votre code.
Il y a plusieurs avantages à utiliser une constante :
Si la donnée doit être modifiée dans une macro complexe, vous n'avez plus besoin de parcourir toute la procédure pour la retrouver : il suffit de modifier la constante qui est généralement placée en début de macro ou en tête du module. Vous évitez ainsi les recherches fastidieuses et les erreurs de saisie.
Les constantes permettent aussi d'améliorer la lisibilité des macros.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 | Sub Test_Utilisation_Constantes Const LaValeur As Integer = 100 Const LeTexte As String = "essai" MsgBox LeTexte & " " & LaValeur * 2 End Sub |
Ces fonctions convertissent une expression en un type de données spécifié. Elles sont particulièrement intéressantes pour réadapter un format, par exemple suite à un transfert de données brutes que vous souhaitez utiliser en type Date, numérique...
Fonction - Type renvoyé (Type de conversion)
- CBool - Boolean (Convertit une comparaison de chaînes de caractères ou une comparaison numérique en expression logique) ;
ou bien une expression numérique en expression logique) ; - CByte - Byte (Convertit une chaîne de caractères ou une expression numérique en type Byte) ;
- CCur - Currency (Convertit une expression de chaîne ou une expression numérique en expression monétaire) ;
- CDate - Date (Convertit une expression au format chaîne de caractères ou numérique en valeur de date) ;
- CDbl - Double (Convertit une expression au format chaîne de caractères ou numérique en valeur de type Double) ;
- CDec - Decimal (Convertit une expression de chaîne ou une expression numérique en expression décimale) ;
- CInt - Integer (Convertit une expression au format chaîne de caractères ou numérique en nombre entier) ;
- CLng - Long (Convertit une expression au format chaîne de caractères ou numérique en nombre entier long) ;
- CSng - Single (Convertit une expression au format chaîne de caractères ou numérique en valeur de type Single (simple)) ;
- CStr - String (Convertit une expression numérique en expression au format chaîne de caractères) ;
- CVar - Variant (Convertit une expression de chaîne ou une expression numérique en expression de type variant).
Un exemple qui transforme une chaîne de caractères (String) en type Integer pour l'utilisation dans un calcul.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 | Sub Main Dim x as String x = "1234" MsgBox CInt(x) * 2 End Sub |
Les arguments Optional (optionnels) permettent de définir les paramètres transmis à une fonction comme facultatifs.
Ces arguments doivent être placés en dernière position dans la liste des paramètres.
Il est parfois utile de vérifier la présence de ces arguments optionnels pour éviter les erreurs dans la procédure : dans ce cas, utilisez la fonction IsMissing pour déterminer si des arguments facultatifs ont été fournis lors de l'appel de la procédure. La fonction renvoie True si aucune valeur correspondant à l'argument spécifié n'a été passée, sinon elle renvoie la valeur False.
Nota :
Lorsque vous utilisez la fonction IsMissing, il est préférable que les arguments Optional soient déclarés en type Variant.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | Sub Test maFonction( "OOo" ) maFonction( "OOo" , 50 ) maFonction( "OOo" , 50 , 100 ) maFonction( "OOo" , , 100 ) End Sub Function maFonction( Arg1 As String , Optional Arg2 As Variant , Optional Arg3 As Variant ) As Long MsgBox "Arguments manquants: " & IsMissing( Arg2 ) & " - " & IsMissing( Arg3 ) End Function |
La fonction IsNull permet d'effectuer cette vérification en renvoyant la valeur True si la variable testée (Variant ou Object) est de type Null, et la valeur False dans le cas contraire.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Sub Test_IsNull Dim vVar As Variant Dim oVar As Object '--- test variable Variant MsgBox IsNull( vVar ) 'False vVar = "" MsgBox IsNull( vVar ) 'False vVar = "x" MsgBox IsNull( vVar ) 'False vVar = Null MsgBox IsNull( vVar ) 'True '--- test variable Object MsgBox IsNull( oVar ) 'True oVar = ThisComponent MsgBox IsNull( oVar ) 'False oVar = Nothing MsgBox IsNull( oVar ) 'True End Sub |
Vous pouvez utiliser la fonction IsEmpty.
La fonction renvoie la valeur True si la variable contient la valeur Empty, et la valeur False dans le cas contraire.
IsEmpty fonctionne uniquement pour les variables de type Variant.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Sub Test_IsEmpty Dim vVar As Variant '--- test variable Variant MsgBox IsEmpty( vVar ) 'True vVar = "x" MsgBox IsEmpty( vVar ) 'False vVar = "" MsgBox IsEmpty( vVar ) 'False vVar = Null MsgBox IsEmpty( vVar ) 'False vVar = Empty MsgBox IsEmpty( vVar ) 'True End Sub |
Null est différent d'Empty, qui indique qu'une variable n'a pas encore été initialisée.
Vous pouvez utiliser la fonction TypeName pour récupérer le type d'information contenu dans la variable :
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | Sub Exemple_TypeName Dim Cible As Variant Msgbox TypeName( Cible ) 'Empty Cible = ThisComponent Msgbox TypeName( Cible ) 'Object Cible = "mimi" Msgbox TypeName( Cible ) 'String Cible = 10 Msgbox TypeName( Cible ) 'Integer Cible = True Msgbox TypeName( Cible ) 'Boolean Cible = 99999999 Msgbox TypeName( Cible ) 'Double Cible = CDate( "26/05/2006" ) Msgbox TypeName( Cible ) 'Date Cible = 10 Msgbox TypeName( Cible ) 'Integer Cible = Null Msgbox TypeName( Cible ) 'Null End Sub |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.