Bonjour à tous,
Je viens de créer un script ou j'ai été contraint d'utiliser un Dim....As. cela marche parfaitement mais je souhaiterai avoir l'explication par rapport au fait que cela ne marche pas si je ne le met pas.
Merci d'avance
Bonjour à tous,
Je viens de créer un script ou j'ai été contraint d'utiliser un Dim....As. cela marche parfaitement mais je souhaiterai avoir l'explication par rapport au fait que cela ne marche pas si je ne le met pas.
Merci d'avance
Bonjour.
En VBA, l'instruction Dim est la plus courante pour déclarer une variable.
Si tu utilises une variable sans l'avoir déclarée :
- si tu as "Option Explicit", cela provoque une erreur de compilation
- sinon, cela crée un variant et si ce type ne convient pas, tu as une erreur d'exécution.
Il est recommandé de travailler avec "Option Explicit" et de déclarer toutes les variables dans le type qui convient.
COrdialement,
PGZ
bonjour
"dim" sert a initialiser une variable
exemple
tu a differente sorte de variables
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 sub allumer () dim nom as string 'string etant le type de variable representant du text nom=application.username msgbox "bonjour" & nom
long: numeriques
string: text
object: objet controls et autres
integer numerique
bytes: numerique utiliser pour les chrono, compteur
variant :qui peut prendre plusieurs aspect des precedentes on l'utilise quand une valeur peut etre de plusieur type
boolean: qui n'autorise que le true ou le false qui sert tres souvent a stoper ou demarer une action
reste a choisir le bon type dans tes macros
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonjour,
Attention, Dim est une instruction de déclaration * ! et n'a rien à voir avec une initialisation."dim" sert a initialiser une variable
Nous sommes dans un langage de programmation et la définition des mots clefs a son importance et ne peut être prise à la légère.
*cf message de pgz d'ailleurs
cordialement,
Didier
La question est sans doute : pourquoi s'emmnuyer avec ça? La réponse est : pour eviter de mélanger des choux avec des carottes. Si on ne définit pas les variables explicitement, on peut très bien coder :
et ça n'est qu'à l'execution que ça se plante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 a = "TEXTE" b = 124 c = b / a
alors que si on rajoute "option explicit" en tête de module, hop! dès la compilation il signale qu'il y a des bizarreries.
En bref, ça oblige à structurer son travail, ce qui permet d'anticiper les erreurs de type. Sur 3 lignes, ça ne change pas grand chose, sur 30,000, c'est le jour et la nuit.
Merci pour vos réponses
Partager