gros pb de Sheets.count

  • Initiateur de la discussion Initiateur de la discussion pierref
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

pierref

Guest
bonjour,

Qqun pourrait il me dire pourquoi cette ligne de code ne marche pas ??

nb = Workbooks(nomClasseur).Sheets.count

Ca marche ailleurs mais la, je fais une ouverture de classeur et je veux connaitre le nb de feuilles qu'il contient... Or le count de passe pas au debugger, meme si il me le propose dans la liste des fonctions de sheets ..

bref je comprends pas...

aidez moi !! je bloque

merci davance

a+
 
Bonjour pierref et le forum,

As-tu une erreur d'exécution '9' : L'indice n'appartient pas à la sélection ?
Si oui, c'est peut-être que la variable nomClasseur contient le nom ET le chemin du classeur (p.ex. "C:\MonClasseur.xls"). Dans ce cas, il faut faire :

nb = Workbooks(Dir(nomClasseur)).Sheets.Count


@+
wape
 
Salut Pierref !

As-tu bien mis les " " de chaque côté du nom de ton classeur ?

tel que : nb = Workbooks("nomClasseur").Sheets.count

J'ai essayé plusieurs méthodes et cela fonctionne bien.

Voilà la dernière :

Sub CompteFeuille()
Range("A1") = ActiveWorkbook.Sheets.Count
End Sub
 
arf bien tenté 🙂

mais je fais avant dans mon code : nomClasseur = Dir(cheminFichier)

ca ne vient donc pas de la.

javoue que je ne comprend pas l'erreur....

peut etre quil faut faire une commande avant genre activer le classeur ou autre.....

merci ++
 
c vraiment bizarre j'ai essayé :

ActiveWorkbook.Sheets.Count

mais pareil :
il me propose la fonction count (dans la liste auto qui apparait lorsqu'on tape le point apres sheets ) et qd je change de ligne, le c de count passe en minuscule comme si cetait pas reconnu...
et bien sur ca plante a l'exec

dur, dur le matin .....
 
Re Pierref !

Ta formule de base nb = Workbooks(nomClasseur).Sheets.Count, fonctionne parfaitement chez moi.

Voilà ce que j'ai fait : nb = Workbooks("Proc+Form").Sheets.Count.

Une question importante :

As-tu fais un Copier / Coller de ton module vers le Forum, ou as-tu réécris la ligne de code que l'on voit dans premier post ?

Car si tu as fait un Copier / Coller directement de ton module, ne remarques-tu rien ?

nb = Workbooks(nomClasseur).Sheets.count

Le "c" de "count" est en minuscule.

Ce qui veut dire qu'Excel n'a pas reconnu cette commande et que donc, soit Excel ne la connais pas, soit il y a une erreur avant dans ta ligne de code.

Et regarde cette partie : (nomClasseur), si tu as fait un Copier/Coller, on voit bien qu'il manque les guillemets.

@ +

Moa
 
c clair joli croisement !

je ne mets pas les guillemets parce que nomClasseur est un string qui contient le nom du classeur...

et effectivement le coup du count avec c minuscule sous entend bien que excel ne le reconnait pas...

très bizarre
 
Re Pierref !

Voilà je viens de faire un test :

Sub CompteFeuille()
Dim NomClasseur As String
NomClasseur = "Proc+Form"
Range("A1") = Workbooks(NomClasseur).Sheets.Count
End Sub

Et ça marche super bien...!

Je ne sais que te dire....

@ +

Moa
 
Bonsoir le Forum

Essaies de faire une recherche dans tout ton projet du terme count .J'ai souvenir de programme ou le surnaturel s'était invité et ou en fait j'avais utilisé des noms réservés. Sait-on jamais .....


A+ Roland
 
Bonsoir ce Fil

Je suis du même avis que toi Roland, on peut créer des "miracles" avec Windoze mais c'est quand même bien souvent aussi à cause d'un enchainement de circonstances qui dégénèrent...

On peut même nommer un objet feuille (pas le nom de d'onglet) mais le Codename "count"... idem pour un UserForm ou n'importe quel contrôle ActiveX...

Mais pour le coup et "just for the fun" faites tourner ceci dans un classeur vierge :

Sub countcountcount()
Dim count As String

With ThisWorkbook
.Worksheets(1).Activate
With .ActiveSheet
.Name = "count"
.Parent.VBProject.VBComponents(.CodeName).Properties("_CodeName") = .Name
End With

count = "Nombre de Pages dans ce classeur : "

MsgBox count & .Sheets.count

End With
End Sub

Testé sous Office 2K et çà marche !!! lol sous XP autoriser l'accès au VBE.Projet

@+Thierry
Take it Easy Just For The Fun​
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour