[VBA] Dim variable selon condition

Le
ThierryP
Bonjour le forum,

Est-il possible de faire le Dim d'une variable en fonction du résultat d'un test :
if condition = vraie then dim maVar as string else dim maVar as integer ?

Test fait et non concluant bien sÍ»r ! Avant de me lancer dans un truc compliqué comme ré-écrire le code Í  la volée suivant le test, je préfère poser la question !

Mais rien n'est impossible aux gourous !!!

Merci d'avance pour toute piste,

ThierryP
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
MichD
Le #26568185
Le 18/02/21 Í  08:12, ThierryP a écrit :
Bonjour le forum,
Est-il possible de faire le Dim d'une variable en fonction du résultat d'un test :
if condition = vraie then dim maVar as string else dim maVar as integer ?
Test fait et non concluant bien sÍ»r ! Avant de me lancer dans un truc compliqué comme ré-écrire le code Í  la volée suivant le test, je préfère poser la question !
Mais rien n'est impossible aux gourous !!!
Merci d'avance pour toute piste,
ThierryP


Bonjour,
Tu n'as qu'Í  déclarer cette variable as "Variant". Cette variable peut
contenir du texte, numérique, voire un tableau de données. Tu peux
modifier son contenu aussi souvent que tu veux, et ce dans la même
procédure.
Dim MaVar As Variant
N.B. Lorsque l'on déclare une variable sans attribuer un type comme :
Dim MaVar
Par défaut, la variable a le type "Variant". Cependant, lorsque l'on
peut, c'est toujours mieux d'attribuer le type au moment de la
déclaration de la procédure.
MichD
ThierryP
Le #26568198
Bonjour Denis,
Pourquoi je ne suis pas surpris que tu me répondes ?? !!!
En fait, je n'ai pas été assez précis, mais ma demande porte sur des objets Outlook et le VBA d'Outlook n'est pas très documenté !
Mais tu as 100% raison, le Variant me va bien et apparemment Outlook est content aussi !
Merci pour la réactivité !
ThierryP
MichD
Le #26568210
Le 18/02/21 Í  09:05, ThierryP a écrit :
Bonjour Denis,
Pourquoi je ne suis pas surpris que tu me répondes ?? !!!
En fait, je n'ai pas été assez précis, mais ma demande porte sur des objets Outlook et le VBA d'Outlook n'est pas très documenté !
Mais tu as 100% raison, le Variant me va bien et apparemment Outlook est content aussi !
Merci pour la réactivité !
ThierryP


Si tu travailles avec des "Objets", tu peux déclarer la variable comme
ceci :
Dim Olk As Object
Set Olk = CreateObject("Outlook.Application")
Si tu as ajouté la référence "Outlook Microsoft Object 16.0", tu peux
faire comme ceci :
Dim Old As Outlook.application
Set Olk = CreateObject("Outlook.Application")
Et l'avantage de cette dernière approche, dès que tu tapes un point(.)
après Olk, tu vas avoir une liste déroulante des propriétés et méthodes
associées Í  cet objet.
MichD
ThierryP
Le #26568309
Le jeudi 18 février 2021 Í  16:11:43 UTC+1, MichD a écrit :
Le 18/02/21 Í  09:05, ThierryP a écrit :
Bonjour Denis,
Pourquoi je ne suis pas surpris que tu me répondes ?? !!!
En fait, je n'ai pas été assez précis, mais ma demande porte sur des objets Outlook et le VBA d'Outlook n'est pas très documenté !
Mais tu as 100% raison, le Variant me va bien et apparemment Outlook est content aussi !
Merci pour la réactivité !
ThierryP

Si tu travailles avec des "Objets", tu peux déclarer la variable comme
ceci :
Dim Olk As Object
Set Olk = CreateObject("Outlook.Application")
Si tu as ajouté la référence "Outlook Microsoft Object 16.0", tu peux
faire comme ceci :
Dim Old As Outlook.application
Set Olk = CreateObject("Outlook.Application")
Et l'avantage de cette dernière approche, dès que tu tapes un point(.)
après Olk, tu vas avoir une liste déroulante des propriétés et méthodes
associées Í  cet objet.
MichD

Bonsoir Denis,
Merci pour l'idée !!! Je vais pouvoir creuser un peu !
ThierryP
Poster une réponse
Anonyme