Supprimer les feuilles par défaut sous excel

johann91 Messages postés 46 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 21 juillet 2006 - 29 juin 2006 à 16:15
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 1 juil. 2006 à 15:26
Bonjour à tous,


Je suis actuellement en train de créer un script qui manipule des
fichiers excel. Mon problème, c'est que j'aimerais bien supprimer les
feuilles par défaut du fichier excel (je crée mes propres feuilles).
Vous me direz "rien de plus facile", mais mon souci est que mon script
doit être capable de tourner sur des Excel avec des paramètres
régionaux français, mais aussi anglais et roumains, voire indiens...


Pour ma configuration française, j'ai les lignes suivantes :


xlApp.Worksheets("Feuil1").delete

xlApp.Worksheets("Feuil2").delete

xlApp.Worksheets("Feuil3").delete


Pour les paramètres anglais, ça donne :



xlApp.Worksheets("Sheet1").delete


xlApp.Worksheets("Sheet2").delete


xlApp.Worksheets("Sheet3").delete


Pour l'indien et le roumain, aucune idée...


Comme je ne serai pas avec mes collègues roumains et indiens au moment
où ils vont faire tourner le script, je ne pourrai pas leur expliquer
qu'il faut changer le nom par défaut de ces feuilles dans le script.
Donc ma question est : y a-t-il une façon "universelle" de supprimer
ces feuilles par défaut ? Ou à défaut, est-il possible de créer un
fichier excel vide, sans aucune feuille, puis de les rajouter par la suite ?


Merci d'avance de vos réponses.

7 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
29 juin 2006 à 16:25
Salut,

Pourquoi ne pas atteindre les feuilles par leur indice plutot que par le nom?

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Mais Surtout: Règlement/FONT>
0
Mikaels35 Messages postés 146 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 17 novembre 2009 2
29 juin 2006 à 16:29
Salut

Tu peux déja limiter à 1 feuille le classeur que tu ouvres en réglant le paramètre dans EXCEL "options/général" !

Je ne pense pas que tu puisses supprimer toutes les feuilles à la création du classeur, mais je me trompe peut-être !


@+
0
johann91 Messages postés 46 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 21 juillet 2006
29 juin 2006 à 16:58
Merci pour vos réponses. La sélection par indices me paraît plutôt bien. J'ai essayé, mais ça me génère une erreur...


Avant de supprimer quoi que ce soit, j'ai 2 feuilles que j'ai créées et
remplies, + ces 3 feuilles par défaut de gauche à droite dans les
onglets. J'en ai déduit (peut-être à tort) que la feuille la plus à
gauche doit avoir l'indice 1 et la plus à droite l'indice 5. J'ai donc
supprimé les feuilles d'indices 3, 4 et 5. Mais a priori, ce n'est pas
bon...
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
29 juin 2006 à 17:13
Sinon,

si tu connais le nom des feuilles que tu ajoutes, alors lorsque tu veux supprimer essaie la chose suivante.
(Attention je n'est rien teste)

Dim Ws as Worksheet

For Each Ws In xlApp.Worksheets
   If Ws.Name <> NomDeTesFeuilleCrees Then Call Ws.Delete
NExt

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Mais Surtout: Règlement/FONT>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
johann91 Messages postés 46 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 21 juillet 2006
30 juin 2006 à 09:26
Merci Jrivet, en effet, le nom des feuilles que je crée est fixe dans
tous les cas.  J'accepterai ta réponse quand j'aurai testé. Je ne
maîtrise pas trop les For Each, mais la démarche me semble bonne. Après, faut voir si ça marche en VBScript après quelques légères modifs...
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
1 juil. 2006 à 15:15
Salut,

En gros le code de Julien veut dire ça :

Pour toutes les feuilles dans les feuilles d'excel (que t'as référencé)
Si le nom de la feuille est différente des nom de feuilles crées (les noms sont à placer dans une variables ou entre "") ben alors elle est supprimée.
Feuille suivante (etc jusqu'à ce qu'il n'y en ait plus)

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
1 juil. 2006 à 15:26
Et pour les feuilles en Indiens, ca donne ça :

xlApp.Worksheets("Chien Enragé").delete
xlApp.Worksheets("Ugh!").delete
xlApp.Worksheets("Danse de la Pluie").delete

@++

--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
0
Rejoignez-nous