Runtime error 91 : Besoin d'aide. [Résolu/Fermé]

Signaler
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
-
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
-
Bonjour à tous,

J'ai un petit soucis avec une macro que je viens de simplifier.
A l'exécution de celle-ci j'ai ce message qui apparait :

RUNTIME ERROR 91: Object variable or With Block variable not set

Voici mon code :
Private Sub Workbook_Open()
Dim ws As Worksheets

ws(2).Visible = True 'Cette ligne se met en défaut à l'erreur
ws(1).Visible = xlVeryHidden

For i = 3 To Sheets.Count
With ws(i)
.Visible = False
End With
Next

For i = 1 To Sheets.Count
With ws(i)
.Protect Password:="123PA"
End With
Next

End Sub

Est-ce que quelqu'un sait à quoi il peut être dû ?

Merci d'avance.

1 réponse

Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
125
Bonjour,

essaie comme ca :

Private Sub Workbook_Open()

dim i as variant

sheets(2).Visible = True 'Cette ligne se met en défaut à l'erreur

sheets(1).Visible = xlVeryHidden

For i = 3 To Sheets.Count

With sheets(i)
.Visible = False

End With

next


For i = 1 To Sheets.Count

With sheets(i)
.Protect Password:="123PA"
End With

next


end sub
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57581 internautes nous ont dit merci ce mois-ci

Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
16
Effectivement ça fonctionne, merci bien.

C'est le dim ws as worksheets qui empêchait la bonne exécution ? Ou le fait que je n'avais pas déclaré ma variable i ?
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
125
tu avais déclaré ta variable dim ws as wroksheet

sauf qu'il fallait dire à quoi était égal ws?
exemple :
ws = sheets(1)
du coup il ne comprenait pas.

Tu n'as pas déclaré la variable i (en soit, la déclaration des variables est facultatif dim i, ws as... mais il vaut mieux le faire).
Messages postés
300
Date d'inscription
vendredi 15 mars 2013
Statut
Membre
Dernière intervention
31 juillet 2018
16
Salut !

Ok je comprends mieux,

Merci pour ton aide, et bonne journée.