VBA: Erreur d'exécution '1004'. La méthode de l'objet Worksheet a echoué.

didaa

XLDnaute Nouveau
Bonjour à tous,

J'essaye de faire une macro qui me sélectionnerait tout les onglet d'un classeur excel sauf certains.Voici le code que j'ai tapé:

Dim Sht As Worksheet
For Each Sht In ActiveWorkbook.Sheets
If Sht.Name <> "ANNEE N" And Sht.Name <> "ANNEE N-1" And Sht.Name <> "CONTROLE" Then
Sht.Select Replace:=False
End If
Next Sht

Le problème c'est qu'il y a un bug sur la ligne "Sht.Select Replace:=False" : Erreur d'exécution '1004'. La méthode de l'objet Worksheet a echoué.

Le plus "bizarre" c'est que cette macro marche lorsque je l'essaye sur d'autres classeur Excel, mais pas sur celui pour lequel je l'ai créé!

Avez-vous une idée de ce qui pourrait en être la cause et une solution proposer?

Merci d'avance.
 

didaa

XLDnaute Nouveau
Re : VBA: Erreur d'exécution '1004'. La méthode de l'objet Worksheet a echoué.

Re bonjour à tous,

Petite rectification: le message d'erreur est le suivant:
Erreur d'exécution '1004'. La méthode 'Select' de l'objet Worksheet a echoué.

Encore une fois merci pour votre aide.
 

Cousinhub

XLDnaute Barbatruc
Re : VBA: Erreur d'exécution '1004'. La méthode de l'objet Worksheet a echoué.

Bonjour,

Tu n'aurais pas des onglets masqués?

Essaie ainsi :

Code:
Dim Sht As Worksheet
For Each Sht In ActiveWorkbook.Sheets
    If Sht.Name <> "ANNEE N" And Sht.Name <> "ANNEE N-1" And Sht.Name <> "CONTROLE" Then
        If Sht.Visible Then Sht.Select Replace:=False
    End If
Next Sht

Bonne journée
 

didaa

XLDnaute Nouveau
Re : VBA: Erreur d'exécution '1004'. La méthode de l'objet Worksheet a echoué.

Pas bête ton idée bhbh.
Je viens de l'essayer cela ne marche pas, il y a toujours le même message d'erreur au niveau de "Sht.Select Replace:=False".
 

Cousinhub

XLDnaute Barbatruc
Re : VBA: Erreur d'exécution '1004'. La méthode de l'objet Worksheet a echoué.

Re-,

Ben ma boule de cristal vient de se tarir....

Si tu pouvais joindre ton fichier réel...(tu effaces toutes les données des onglets, même les masqués....), avec tous les onglets présents

Et tu l'envoies sur le forum
 

didaa

XLDnaute Nouveau
Re : VBA: Erreur d'exécution '1004'. La méthode de l'objet Worksheet a echoué.

Voici mon fichier sans les données.
Merci d'avance pour ton temps!
 

Pièces jointes

  • Agence.xls
    66 KB · Affichages: 167
  • Agence.xls
    66 KB · Affichages: 215
  • Agence.xls
    66 KB · Affichages: 192

Cousinhub

XLDnaute Barbatruc
Re : VBA: Erreur d'exécution '1004'. La méthode de l'objet Worksheet a echoué.

Re-,

Mon intuition était bonne, c'est la solution proposée qui l'était un peu moins....

tu as 2 onglets en VeryHidden, donc il fallait préciser :

Code:
If Sht.Visible = xlSheetVisible Then Sht.Select Replace:=False

Et voilou...
 

didaa

XLDnaute Nouveau
Re : VBA: Erreur d'exécution '1004'. La méthode de l'objet Worksheet a echoué.

Ca marche parfaitement! UN GRAND MERCI A TOI BHBH!!

J'ai juste deux petite question encore: Comment fais tu pour faire passer une feuille en veryhidden et comment tu la démasques?

Encore une fois un grand merci!
 

Cousinhub

XLDnaute Barbatruc
Re : VBA: Erreur d'exécution '1004'. La méthode de l'objet Worksheet a echoué.

Re-,

La propriété en XlVeryHidden ne peut s'obtenir que par Macro, ou via l'interface VBE (Visual Basic Editor)

Pour ouvrir le VBE, tu fais Alt + F11 (mais ça, tu le savais déjà...)

Tu cliques sur le nom de l'onglet, à gauche, dans le Projet

Puis tu appuies sur F4 pour obtenir les propriétés de l'onglet

Dans la dernière propriété ("Visible"), tu as un menu déroulant....

Sinon, par code, tu mets ceci :

Code:
Sheets("Feuil1").Visible = xlSheetVisible 'visible
Sheets("Feuil1").Visible = xlSheetHidden  'masquée, mais on peut démasquer par la barre de menus
Sheets("Feuil1").Visible = xlSheetVeryHidden 'masquée, on ne peut démasquer que par code ou via VBE

Bonne journée
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 613
Membres
103 607
dernier inscrit
lolo1970