• Initiateur de la discussion Initiateur de la discussion Esox
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Esox

XLDnaute Occasionnel
Bonjour le forum,
voilà, j'ai cette macro Excel 2002:

If Range("E7").VerticalAlignment = xlCenter Then
Range("b7:gg7").Select
Selection.AutoFilter
Range("b7:gg7").VerticalAlignment = xlTop

Et j'aimerais rajouter une condition. Ma feuille est protéger par mot de passe, et je souhaiterai que cette macro puisse s'exécuter si et seulement si la feuille est dévérouillée.

Pourriez vous m'aider ?

Merci

Stef
 
Re : IF et AND

Bonjour.
"=" est un opérateur arithmétique, pas Boolean. L'opérateur Boolean correspondant est Eqv.
Mais un Boolean est TOUJOURS Eqv True !
En effet si X, Boolean, est False, X Eqv True est False aussi, et si X est True, X Eqv True est True aussi.
If X Then ça suffit.
Cordialement.
 
Re : IF et AND

VB:
If worksheets(numéro d'index de la feuille protégée).ProtectContents Then
Il n'a jamais été dit qu'il fallait toujours une comparaison dans un If :
If...Then...Else, instruction


Permet d'exécuter conditionnellement des instructions en fonction du résultat d'une expression.
Syntaxe
If condition Then [statements] [Else elsestatements]
Vous pouvez également utiliser la syntaxe suivante :
If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements] ...
[Else
[elsestatements]]
End If
La syntaxe de l'instruction If...Then...Else comprend les éléments suivants :
ÉlémentDescription

[TD="class: T"] condition [/TD]
[TD="class: T, width: 73%"]Un des deux types d'expression suivants :[/TD]

[TD="class: T, width: 27%"][/TD]
[TD="class: T, width: 73%"]Une expression numérique ou expression de chaîne qui prend la valeur True ou False . Si l'argument condition est Null, il est considéré comme False .[/TD]

[TD="class: T, width: 27%"][/TD]
[TD="class: T, width: 73%"]Une expression de la forme TypeOf objectname Is objecttype . Objectname est une référence à un objet et objecttype est un type d'objet valide. L'expression a pour valeur True si objectname est du type d'objet indiqué par objecttype ; sinon elle a pour valeur False .[/TD]

[TD="class: T, width: 27%"] statements [/TD]
[TD="class: T, width: 73%"]Facultatif dans la feuille bloc ; nécessaire dans une feuille à une seule ligne sans clause Else . Une ou plusieurs instructions séparées par un signe deux-points ; exécutée si la valeur de condition est True .[/TD]

[TD="class: T, width: 27%"] condition-n [/TD]
[TD="class: T, width: 73%"]Facultatif. Similaire à condition .[/TD]

[TD="class: T, width: 27%"] elseifstatements [/TD]
[TD="class: T, width: 73%"]Facultatif. Une ou plusieurs instructions exécutées si la valeur de l'argument condition-n associé est True .[/TD]

[TD="class: T, width: 27%"] elsestatements [/TD]
[TD="class: T, width: 73%"]Facultatif. Une ou plusieurs instructions exécutées si aucun argument condition précédent n'a la valeur True ou si la valeur de l'expression condition-n n'est pas True .[/TD]

Remarques
Vous pouvez utiliser la syntaxe à une seule ligne (première syntaxe) pour effectuer de petits tests simples. Toutefois, la deuxième syntaxe fournit une plus grande structure et davantage de souplesse ; en outre, elle est généralement plus facile à lire, à mettre à jour et à corriger.
Note Dans le cas de la syntaxe à une seule ligne, il est possible d'exécuter plusieurs instructions à partir d'une décision If...Then. Toutes les instructions doivent se trouver sur la même ligne et être séparées par un signe deux-points, comme dans l'instruction suivante :

If A > 10 Then A = A + 1 : B = B + A : C = C + B Une instruction If d'un bloc doit être la première instruction d'une ligne. Les éléments Else, ElseIf et End If de l'instruction peuvent être uniquement précédés d'un numéro de ligne ou d'une étiquette de ligne. Le bloc If doit se terminer par une instruction End If.
Pour déterminer si une instruction If est un bloc If, examinez ce qui suit le mot clé Then. S'il ne s'agit pas d'un commentaire, l'instruction est traitée comme une instruction If à une seule ligne.
Les clauses Else et ElseIf sont facultatifs. Un bloc If peut contenir autant de clauses Elself que vous le souhaitez, mais aucune ne peut apparaître après une clause Else. N'importe quel bloc d'instructions peut contenir des instructions If imbriquées.
Lorsque vous exécutez une instruction If d'un bloc (deuxième syntaxe), la condition est testée. Si la valeur de l'argument condition est True, les instructions qui suivent Then sont exécutées. Si la valeur de l'argument condition est False, chacune des conditions ElseIf (s'il y en a) sont évaluées l'une après l'autre. Quand une condition de valeur True est trouvée, les instructions qui suivent le Then correspondant sont exécutées. Si aucune des conditions Elself n'a pour valeur True, ou s'il n'y a pas de clause ElseIf, les instructions qui suivent Else sont exécutées. Une fois que les instructions qui suivent Then ou Else exécutées, l'exécution du programme se poursuit à partir de l'instruction située après End If.
Conseil L'instruction Select Case peut s'avérer mieux adaptée à l'évaluation d'une expression simple qui possède plusieurs actions possibles. Toutefois, la clause TypeOf objectname Is objecttype ne peut pas être utilisée avec Select Case.
Note La clause TypeOf ne peut pas être utilisée avec des types de données explicites tels que Long, Integer et des types autres que le type Object.
Il n'est même pas dit que la condition doit obligatoirement être une expression Boolean: 0 ou une chaine vide a la même conséquence que False, et tous le reste la même que True.

En tout cas si vous avez une expression qui ne peut être que True ou False, ne la comparez pas à True, c'est imbécillisime puisque ça vaut toujours l'expression elle même toute seule !
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

L
Réponses
9
Affichages
1 K
W
Réponses
8
Affichages
1 K
Réponses
4
Affichages
990
Réponses
2
Affichages
1 K
T
Réponses
2
Affichages
2 K
Tibooo
T
L
Réponses
2
Affichages
1 K
Legendre
L
Retour