Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro sélectionner toutes les feuilles sauf certaines

sdevers

XLDnaute Nouveau
Bonjour le forum,

Je dois appliquer une procédure For Each sur certaines feuilles d'un classeur. Sur les conseils d'un de nos membres, j'ai voulu utilisé la fonction Array pour limiter la zone sur laquelle va s'appliquer ma procédure.

Dans la version de base, j'utilisais ThisWorkbook.Worksheets(Array("actif (1)", "actif (2)",...)). Le problème c'est que le nombre de page est important (+ de 20 ce qui m'allonge mon code) et surtout j'aimerais utiliser les noms VBA pour ne pas bloquer mon code si l'utilisateur décide de renommer l'onglet dans Excel.

Je me suis donc orienté vers un For Each Sht In ActiveWorkbook.Sheets (au lieu de Array) auquel je soustrait certaines pages via un If Not.

Mon code fonctionne avec une seule feuille que je ne veux pas sélectionner mais si je veux ne pas en sélectionner deux ou trois, ça ne fonctionne toujours que pour la première des 3 feuilles.


Sub array4()
'ne fonctionne pas - modifie quand même la sheet "traductions" puisque je n'ai soustrait de la sélection que la sheet "data"
Dim Sht As Worksheet
For Each Sht In ActiveWorkbook.Sheets
If Not Sht.Name = "data" Then
Sht.Range("O1").Value = 1
End If
Next Sht
End Sub​

Je dois, j'imagine, ajouter un OR ou un AND. J'ai essayé avec If Sht.Name = "data" Or Sht.Name = "traductions" Then mais ça bloque. Je ne comprends pas...

C'est quand possible de faire un If Not (condition 1) OR (condition 2) Then, non?

Merci d'avance,
 

sdevers

XLDnaute Nouveau
Re : Macro sélectionner toutes les feuilles sauf certaines

Oui Re!

Ca marche nickel (j'ai envie de dire comme d'hab).

Je crois que le jour où j'aurai l'habitude des syntaxes VBA, je gagnerai beaucoup de temps... Pour cette questions, j'ai consulté plein de forums, l'aide VBA, des cours sur certains sites,... je suis pas parvenu à faire ce que je voulais (tout simplement parce que tous les exemples trouvés concernaient le If + OR (ou AND) et pas le If Not + OR (ou AND).

Mon problème dans mon code était simplement que je n'avais pas mis "AND NOT". J'ai bêtement pensé que celui en début de ligne suffisait pour l'ensemble...

Grrrrr... comment perdre une demi-journée en tests.

Encore merci CPk
 

CPk

XLDnaute Impliqué
Re : Macro sélectionner toutes les feuilles sauf certaines

un seul moyen de devenir performant, bouquiner, lire des tutoriels, chercher à comprendre ce qu'est vba et comment il fonctionne. A partir du moment où vous savez ce qu'est un objet, une expression, une méthode et une collection après tout le reste sera tout de suite moins flou
 

Discussions similaires

Réponses
10
Affichages
308
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…