[RESOLU]exclure des feuilles de la proriété sheets.count

jopont

XLDnaute Impliqué
Bonjour,

Je cherche dans un test VBA à exclure 4 feuilles de la proriété sheets.count : j'ai

Code:
For t = 1 To Sheets.Count
mais je ne veux pas des feuilles 27, 28, 29, 30 dans le test

Comment faire ?
merci
 
Dernière édition:

jopont

XLDnaute Impliqué
Re : exclure des feuilles de la proriété sheets.count

est ce que cela pourrait venir de la numérotation de mes feuilles :

Ce lien n'existe plus

et voici mon code :

Code:
Option Explicit

Function periode(Optional lig As Long = 2)
Application.Volatile 'selon le besoin…

Dim c As Range, t As Integer, Cpte As Integer, i As Byte, y As Byte
y = Worksheets.Count
For i = 1 To y
Select Case i
Case 1 To 27, 31 To y
If lig = 0 Then lig = 4

      Set c = Sheets(i).Range("C" & lig)
  Do While IsDate(Sheets(i).Cells(1, c.Column))
    If c = "RF" Or c = "P1" Or c = "" Then
    Cpte = Cpte + 1
    
    Else
      'If periode < Cpte Then periode = Cpte
      Cpte = 0
    End If
      If periode < Cpte Then periode = Cpte
    Set c = c(1, 3)
  Loop

End Select
Next i
End Function
 

Eric 45

XLDnaute Occasionnel
Re : exclure des feuilles de la proriété sheets.count

Bonsoir à tous

Est-il possible de nommer les feuilles que je veux exclure ?
Par exemple dire que je ne veux pas des feuilles sheets.name = "octobre","novembre", "décembre"
merci

Peut être comme ceci :

Code:
Dim sh As Worksheet

For Each sh In ActiveWorkbook.Worksheets
    If sh.Name <> "octobre" And sh.Name <> "novembre" And sh.Name <> "décembre" Then ....

Eric
 

jopont

XLDnaute Impliqué
Re : exclure des feuilles de la proriété sheets.count

Bonjour,
Faut-il définir le t= array avec les feuilles que je veux utiliser ?
Le code pourrait-il être le suivant :
Code:
Option Explicit

Function periode(Optional lig As Long = 2)
Application.Volatile 'selon le besoin…

Dim c As Range, Cpte As Integer
Dim t() As Variant, ws As Object, i as integer
t = Array("janvier", "février", "mars")
Application.DisplayAlerts = False
For Each ws In t

    Set c = Sheets(i).Range("C" & lig)
  Do While IsDate(Sheets(i).Cells(1, c.Column))
    If c = "RF" Or c = "P1" Or c = "" Then
    Cpte = Cpte + 1
    
    Else
      'If periode < Cpte Then periode = Cpte
      Cpte = 0
    End If
      If periode < Cpte Then periode = Cpte
    Set c = c(1, 3)
  Loop

End Select
Next i
Next ws
Application.DisplayAlerts = True
End Sub
Est ce que ce code peut fonctionner ?
Merci
 

Discussions similaires

Statistiques des forums

Discussions
311 712
Messages
2 081 802
Membres
101 819
dernier inscrit
lukumubarth