Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

gros pb de Sheets.count

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+
 
W

wape

Guest
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
 
M

Moa

Guest
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
 
P

pierref

Guest
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 ++
 
P

pierref

Guest
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 .....
 
M

Moa

Guest
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
 
P

pierref

Guest
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
 
M

Moa

Guest
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
 
R

Roland

Guest
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
 
@

@+Thierry

Guest
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​
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…