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

présence d'une feuille

C

Clark

Guest
Bonjour à tous,

j'aimerais savoir s'il existe un moyen en VB de tester l'existence d'une feuille dans mon classeur en fonction de son nom parceque si par exemple je veux insérer une valeur dans une cellule de la feuille A et que celle-ci n'existe pas, je me retrouve avec une erreur!

La solution que j'ai trouvée pour le moment, c'est de me positionner sur la première feuille et de parcourir toutes les feuilles jusqu'à ce que je trouve la bonne, mais je ne trouve pas ce terrible!


Merci par avance
Clark
 
C

Clark

Guest
Merci Pascal, cette réponse aurait du me satisfaire mais j'ai oublié de préciser que je fais ce VB à partir d'une application développé sous Windev en OLE. Je suis donc limité.

Je préfèrerais une fonction, quelque chose qui me renvoi un booleen par exemple, mais j'en demande peut-être un peut trop!!!


Clark
 
P

Pascal76

Guest
Pour travailler avec un booléen tu peux faire par exemple

Dim MaPresence as boolean

MaPresence = False
for each ws in worksheets
If ws.name = "Feuille A" then MaPresence= True
exit for
next

Là tu récupères Ton Booléen à vrai si ta feuille est présente sinon il est à faux

Est-ce que cela suffit ?

Pascal
 
C

Clark

Guest
Ta première réponse suffit déjà largement en temps normal,

mais dans mon cas, je définis un objet OLE automation sous Windev qui envoi des ordres VB vers Excel.

Mais je suis limité dans les ordres que je peux envoyer, et une boucle par exemple comme tu me proposes, je ne peux pas!

Ce qu'il me faudrait c'est un truc du genre

Dim Existe as boolean

Existe=Workbook.Sheet("La_Feuille_Que_Je_Cherche").Exist()


Un truc vraiment simple quoi!
 
L

le CH'TI160

Guest
Bonjour le Forum,

SALUT "Clark"

je ne sais pas ce qu'est sous WinDoW OLE mais j'espère que tu pourras
utiliser la Macro complementaire faite par Monsieur MARMONNIER Cedric Intitulé ONGLET Qui ne m'en voudras pas pour la pub
Qui répond a ta question avoir dans la la barre de menu d'EXCEL
la liste des feuilles de ton dossier ouvert
A+++

Jean Marie
 

Pièces jointes

  • macropourfeuille.zip
    17.3 KB · Affichages: 35
C

Clark

Guest
Non ce n'est pas cela que je veux faire.

Je veux savoir si telle ou telle feuille existe dans mon classeur en VB mais sans faire de boucle.

Parceque lorsque je sélectionne une feuille d'après son nom alors qu'elle n'existe pas, ca fait une erreur ce qui n'est pas très propre.
Je voudrais donc pouvoir tester si la feuille existe avant de la sélectionner et tout ca, toujours en VB.
 
R

Romuald

Guest
Tu peux pas faire :

function SheetExists(sSheetName as string) as boolean
on error resume next
sheets(sSheetName).select
SheetExists = Not Err.Number > 0
end function
 
C

Clark

Guest
Non, je ne peux pas faire ca non plus ;(

Finalement j'ai repris mon ancienne méthode en attendant de trouver mieux.

Je compte le nb de feuille et je me place sur la première.
Puis je passe de feuille en feuille en regardant les noms et je compare avec celui que je veux. J'aurais préféré le faire sans parcourir toutes mes feuilles!

Merci pour vos réponses en tout cas

Clark
 

Discussions similaires

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