Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Différence entre If et #If

3 réponses
Avatar
Eric RENAUD
Bonsoir,
J'ai trouvé dans un programme l'utilisation de la fonction #If.
Les définitions :
#If : Effectue une compilation conditionnelle de blocs sélectionnés de code
Visual Basic.
If : Permet d'exécuter conditionnellement des instructions en fonction du
résultat d'une expression.

Je suis aller voir dans l'aide la différence entre If et #If et j'avoue ne
pas avoir compris grand chose pour le #If.
Si quelqu'un a un exemple très parlant et montrant la différence entre ces
deux fonctions, je suis premeur.

D'avance merci
...........................
Bien cordialement
Eric Renaud
http://www.erenaud.fr.fm/

3 réponses

Avatar
Clément Marcotte
Bonjour,

La compilation conditionnelle, suppose que le bloc d'instruction est
compilé si la condition de compilation est rencontrée.

Un cas classique est l'utilisation d'un UserForm non modal avec Excel
2000 et suivants, et non modal pour les versions plus anciennes

#if vba6 then
instruction pour afficher un UserForm non modal
#else
instruction pour afficher un UserForm non modal
#end if

Pour peu qu'il n'y ait pas d'erreur de syntaxe, il n'est pas
nécessaire de mettre de gestionnaire d'erreur pour régler l'affichage
de l'UserForm.

Si tu mets un If ordinaire, il va falloir gérer l'erreur en
conséquence.



"Eric RENAUD" a écrit dans le message de
news:%
Bonsoir,
J'ai trouvé dans un programme l'utilisation de la fonction #If.
Les définitions :
#If : Effectue une compilation conditionnelle de blocs sélectionnés
de code

Visual Basic.
If : Permet d'exécuter conditionnellement des instructions en
fonction du

résultat d'une expression.

Je suis aller voir dans l'aide la différence entre If et #If et
j'avoue ne

pas avoir compris grand chose pour le #If.
Si quelqu'un a un exemple très parlant et montrant la différence
entre ces

deux fonctions, je suis premeur.

D'avance merci
...........................
Bien cordialement
Eric Renaud
http://www.erenaud.fr.fm/




Avatar
Eric RENAUD
Je comprend un peu mieux mais n'aurais tu pas fait une erreur en me disant :
XL 2000 et + modal
XL 97 et - non modal
Dans ce cas :

#If VBA6 then
instruction pour afficher un UserForm modal (et non pas non modal ?)
#Else
instruction pour afficher un UserForm non modal
#End if
De plus c'est quoi ce VBA6, je ne trouve nulle part ce terme dans l'aide (je
pense que c'est une version)


"Clément Marcotte" a écrit dans le message
de news:eRT%
Bonjour,

La compilation conditionnelle, suppose que le bloc d'instruction est
compilé si la condition de compilation est rencontrée.

Un cas classique est l'utilisation d'un UserForm non modal avec Excel
2000 et suivants, et non modal pour les versions plus anciennes

#if vba6 then
instruction pour afficher un UserForm non modal
#else
instruction pour afficher un UserForm non modal
#end if

Pour peu qu'il n'y ait pas d'erreur de syntaxe, il n'est pas
nécessaire de mettre de gestionnaire d'erreur pour régler l'affichage
de l'UserForm.

Si tu mets un If ordinaire, il va falloir gérer l'erreur en
conséquence.



"Eric RENAUD" a écrit dans le message de
news:%
Bonsoir,
J'ai trouvé dans un programme l'utilisation de la fonction #If.
Les définitions :
#If : Effectue une compilation conditionnelle de blocs sélectionnés
de code

Visual Basic.
If : Permet d'exécuter conditionnellement des instructions en
fonction du

résultat d'une expression.

Je suis aller voir dans l'aide la différence entre If et #If et
j'avoue ne

pas avoir compris grand chose pour le #If.
Si quelqu'un a un exemple très parlant et montrant la différence
entre ces

deux fonctions, je suis premeur.

D'avance merci
...........................
Bien cordialement
Eric Renaud
http://www.erenaud.fr.fm/







Avatar
Clément Marcotte
Bonjour,

Je comprend un peu mieux mais n'aurais tu pas fait une erreur en me
disant :

XL 2000 et + modal
XL 97 et - non modal


Je pense que oui.

De plus c'est quoi ce VBA6, je ne trouve nulle part ce terme dans
l'aide (je

pense que c'est une version)


C'est le numéro de version de VBA, qui correspond grosso-modo à la
version de VB dont elle découle.

Pour Excel 97, c'est VBA5 (je pense), qui découle de VB5
Pour Excel 2000 c'est VBA6 qui découle de VB6
Pour Excel 2002 c'est VbA6 également, pour VBA 6.3 en fait
Pour Excel 2003 ?????????????????????

Dans l'aide de VBA pour Excel 2002, tu fais une recherche pour
constantes. Ensuite tu cliques sur Constantes VisualBasic, dans la
colonne de gauche, puis constantes de compilation dans la colonne de
droite.


Michel Gaboly pourrait sans doute compléter pour les versions MAC qui
sont un peu différentes



"Eric RENAUD" a écrit dans le message de
news:
Dans ce cas :

#If VBA6 then
instruction pour afficher un UserForm modal (et non pas non modal
?)

#Else
instruction pour afficher un UserForm non modal
#End if


"Clément Marcotte" a écrit dans le
message

de news:eRT%
Bonjour,

La compilation conditionnelle, suppose que le bloc d'instruction
est


compilé si la condition de compilation est rencontrée.

Un cas classique est l'utilisation d'un UserForm non modal avec
Excel


2000 et suivants, et non modal pour les versions plus anciennes

#if vba6 then
instruction pour afficher un UserForm non modal
#else
instruction pour afficher un UserForm non modal
#end if

Pour peu qu'il n'y ait pas d'erreur de syntaxe, il n'est pas
nécessaire de mettre de gestionnaire d'erreur pour régler
l'affichage


de l'UserForm.

Si tu mets un If ordinaire, il va falloir gérer l'erreur en
conséquence.



"Eric RENAUD" a écrit dans le message de
news:%
Bonsoir,
J'ai trouvé dans un programme l'utilisation de la fonction #If.
Les définitions :
#If : Effectue une compilation conditionnelle de blocs
sélectionnés



de code
Visual Basic.
If : Permet d'exécuter conditionnellement des instructions en
fonction du

résultat d'une expression.

Je suis aller voir dans l'aide la différence entre If et #If et
j'avoue ne

pas avoir compris grand chose pour le #If.
Si quelqu'un a un exemple très parlant et montrant la différence
entre ces

deux fonctions, je suis premeur.

D'avance merci
...........................
Bien cordialement
Eric Renaud
http://www.erenaud.fr.fm/