Runtime error 91 : Besoin d'aide.

Résolu/Fermé
Villette54 Messages postés 300 Date d'inscription vendredi 15 mars 2013 Statut Membre Dernière intervention 31 juillet 2018 - 11 oct. 2013 à 14:11
Villette54 Messages postés 300 Date d'inscription vendredi 15 mars 2013 Statut Membre Dernière intervention 31 juillet 2018 - 14 oct. 2013 à 09:32
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.
A voir également:

1 réponse

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
Modifié par melanie1324 le 11/10/2013 à 14:48
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
Villette54 Messages postés 300 Date d'inscription vendredi 15 mars 2013 Statut Membre Dernière intervention 31 juillet 2018 28
11 oct. 2013 à 15:00
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 ?
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
11 oct. 2013 à 15:06
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).
0
Villette54 Messages postés 300 Date d'inscription vendredi 15 mars 2013 Statut Membre Dernière intervention 31 juillet 2018 28
14 oct. 2013 à 09:32
Salut !

Ok je comprends mieux,

Merci pour ton aide, et bonne journée.
0