Hello Laurent,
et woui Sheets ou Worksheets that is the Question !! lol
L'aide dit :
Worksheets, propriété
L'objet Application renvoie une collection Sheets qui représente toutes les feuilles de calcul du classeur actif. En lecture seule.
Sheets, propriété
L'objet Application renvoie une collection Sheets qui représente toutes les feuilles du classeur actif. En lecture seule.
Et hop "De Calcul" disparito !!!
Alors l'idée simple m'est venue immédiatement de faire le test suivant :
Dans un classeur vierge avec trois Feuilles, ajouter 1 Feuille DE MacroXL4 puis faites Tourner ces deux macros :
Sub WooooooooorkSheets()
Dim WS As Worksheet
Dim Msg As String
For Each WS In Worksheets
Msg = Msg & WS.Name & vbCrLf
Next
MsgBox Msg
End Sub
Sub Sheeeeeeeeeeets()
Dim WS As Worksheet
Dim Msg As String
For Each WS In Sheets
Msg = Msg & WS.Name & vbCrLf
Next
MsgBox Msg
End Sub
Donc on voit de suite que WorkSheet ne détecte pas la Macro1 (FeuilMacroXL4) donc voici une première différence...
Ensuite on corse la chose (Salut Pat5 !!) lol
On rajoute une DialogSheetXL5, et pourquoi pas un graph !!
La Macro Worksheet s'en sort aisément et ne liste toujours que les feuilles (les vraies), tandis que la macro Sheets bug lamentablement avec une erreur 13 d'incompatibilité de type... (on dirait que les DialogSheet et les Graph n'encaisse pas WS.Name !)
Voilà donc la leçon a en tirer !! J'en conclus que tant que le classeur ne contient que des feuilles de calcul, Sheets et Worksheets ont le même effet, mais que Sheets détecte tous les onglets d'un classeur... La preuve, si vous avez toujours le classeur avec les 3 feuilles, la MacroXL4, Le DialogSheet et le Graph. faites tourner ceci :
Sub CompteSheets()
Dim Msg As String
MsgBox "WorkSheets trouve : " & Worksheets.Count & " Feuilles dans ce Classeur" & vbCrLf & _
"Tandis que Sheets trouve : " & Sheets.Count & " Feuilles dans ce Classeur"
End Sub
Par contre faire un Dim WS as Sheet... nicht, nicht, Ein gross Katastrof, Niet Niet ! lol
Bonne soirée
@+Thierry