Erreur 1004 vba la methode de l'objet a echou

Résolu/Fermé
ben0013 - 11 févr. 2011 à 15:00
 ben0013 - 11 févr. 2011 à 15:36
Bonjour à tous

j'ai parcouru plusieurs forum cette question a plus ou moins deja été posée mais je sais pas si je suis dans le meme cas de figure:

voici mon code:
If TextBox1.Text = "tata" And TextBox2.Text = "tata" Then
Feuil1.Visible = xlSheetsVeryHidden
Feuil1.Cells.NumberFormat = ";;;"
Feuil2.Visible = xlSheetVisible
Feuil2.Cells.NumberFormat = "General"
Feuil3.Visible = xlSheetsVeryHidden
Feuil3.Cells.NumberFormat = ";;;"
Feuil4.Visible = xlSheetsVeryHidden
Feuil4.Cells.NumberFormat = ";;;"
Feuil5.Visible = xlSheetsVeryHidden
Feuil5.Cells.NumberFormat = ";;;"
Feuil6.Visible = xlSheetsVeryHidden
Feuil6.Cells.NumberFormat = ";;;"
Feuil7.Visible = xlSheetsVeryHidden
Feuil7.Cells.NumberFormat = ";;;"
Feuil8.Visible = xlSheetVeryHidden

Je cherche à afficher certaine feuilles et masquer les autres.
j'ai 4 conditions du meme type (login mdp) et de temps en temps j'ai cette erreur
"la methode 'visible' de l'objet '_Worksheet' a échoué" mon souci c'est qu'elle echoue aléatoirement si qq1 a une idée...
Merci d'avance

3 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
11 févr. 2011 à 15:24
Bonjour,

Juste une petite chose,
est-ce que ca ne bugge pas dans le cas ou :
ta feuille est visible et que tu vas le rendre visible?

je serais toi, j'utiliserais plutot ce code la, il est plus simple :
feuil1.visible = true pour l'afficher
feuil1.visible = false pour masquer la feuille.

Essaie et dis moi
1
Bonjour,

Au moins une feuille doit toujours être visible dans un classeur Excel,
sous 2003 lorsque je tente de masquer toutes les feuille par VBA.

Il en est de même manuellement, si vous tenter de masquer toutes les feuilles
de votre classeur, à la dernière vous aurez un message d'alert vous signalant
qu'au moins une feuille doit être visible.

Je vous recommande de placer votre code dans un ordre différent :

'Commencer toujours par rendre visible une feuille

Feuil2.Visible = xlSheetVisible
Feuil2.Cells.NumberFormat = "General"

Feuil1.Visible = xlSheetsVeryHidden
Feuil1.Cells.NumberFormat = ";;;"
Feuil3.Visible = xlSheetsVeryHidden
Feuil3.Cells.NumberFormat = ";;;"
...


DE plus vous pouvez arrêter le rafraichissement d'écran pendant la manipulation :

Application.ScreenUpdating = False

Feuil2.Visible = xlSheetVisible
Feuil2.Cells.NumberFormat = "General"

Feuil1.Visible = xlSheetsVeryHidden
Feuil1.Cells.NumberFormat = ";;;"
Feuil3.Visible = xlSheetsVeryHidden
Feuil3.Cells.NumberFormat = ";;;"
'...
Application.ScreenUpdating = True


Info
0
Merci pour ta réponse je viens de trouver en lisant ton com trop vite lol.
En fait cela venait au moment où je fermais la derniere fenetre. C'est exel qui bloquai la methode...
Merci.
0