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,