Sous vba excel, creer une feuille et la nommer

Résolu
monaldinho Messages postés 74 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 25 octobre 2007 - 23 juil. 2007 à 12:08
monaldinho Messages postés 74 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 25 octobre 2007 - 23 juil. 2007 à 18:30
bonjour!

c'est pas une question difficile, mais je suis dessus depuis ce matin!!!!
j'ai beau chercher, je ne trouve pas.
c'est toujours quand on en a pas besoin que ca apparait sous notre nez!

en fait, j'aimerais créer une feuille, si elle existe deja, je la supprime puis je la recrée ( il faut absolument que j'obtiens une feuille vierge, avec le nom "Momo Test".
j'ai fait:
    Sheets.Add
    ActiveSheet.Name = "Momo Test"

mais si la feuille "momo test" existe deja ca plante!
que faut- il rajouter pour ne plus avoir ce probleme?
j'ai testé au debut :
    Sheets("Momo Test").Delete
    Sheets.Add
    ActiveSheet.Name = "Momo Test"

mais le probleme c'est que si la feuille n'existe pas ca plante.
et lorsque la feuille existe, on me demande si je veux vraiment supprimer cette feuille! :(

si vous savez comment faire, svp, aidez moi!

Merci à vous.

Monaldinho.

 faites comme moi, éssayer d'éviter le coté obscur de la force

6 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 juil. 2007 à 12:25
Salut,
Une methode serait d'ignorer l'erreur lors de la suppression.

On Error Resume Next
   Sheets("Momo Test").Delete
   On Error GoTo 0
   Sheets.Add
   ActiveSheet.Name = "Momo Test", ----
[code.aspx?ID=41455 By Renfield]

Une autre méthode consiste à parcourir la collection WorkSheets de l'objet ActiveWorkBook pour vois si une feuille à le nom Momo Test si oui tu la supprime

Dim Ws As Worksheet
   For Each Ws In ActiveWorkbook.Worksheets
       If Ws.Name = "Momo Test" Then
           Ws.Delete
           Exit For
       End If
   Next
   Sheets.Add
   ActiveSheet.Name = "Momo Test"
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 juil. 2007 à 12:25
salut,

faut se faire une fonction, voici un exemple simple :

Option Explicit

Function IsExist(ByVal NameSheet As String) As Boolean
    Dim oSheet As Worksheet
    
For Each oSheet In ThisWorkbook.Sheets
    If oSheet.Name = NameSheet Then IsExist = True: Exit
For
Next oSheet

End Function

Sub Test()
    If Not IsExist("Momo Test") Then Sheets.Add: ActiveSheet.Name = "Momo
Test"
End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

(
0
monaldinho Messages postés 74 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 25 octobre 2007
23 juil. 2007 à 12:36
merci pour vos reponses!!!!

jrivet , j'ai testé ca marche nikel !


mortalino, j'ai pas encore testé car on m'attend pour allé dejeuner!


je test ca des que je reviens!


merci à vous deux!!!


ça ma permis de connaitre trois facons de faire differentes!


c'est trop fort!


a++


 


Monaldinho

 faites comme moi, éssayer d'éviter le coté obscur de la force
0
monaldinho Messages postés 74 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 25 octobre 2007
23 juil. 2007 à 14:51
hello !

juste deux petites choses:

mortalino, le passage par une fonction je trouve ca exelent, c'est d'ailleur cette methode que je vais retenir, juste un truc pour que ca soit parfait ( dans la procedure il manque le "end if") :
If Not IsExist("Momo Test") Then
 Sheets.Add: ActiveSheet.Name = "Momo Test"

end if




jrivet, ta deuxieme methode (bouclé sur les onglets) est cool aussi mais ca me demande quand meme de confirmé ma suppression lorsque j'utilise "delete".


 


encore merci a vous deux!


je suis à la bourre, donc vous laissee!


a++


 


Monaldinho
 faites comme moi, éssayer d'éviter le coté obscur de la force
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 juil. 2007 à 15:09
Salut,
Si lorsque la condition If est vérifié tu n'effectue qu'un seul instruction, alors le Endif n'est pas obligatoire et tu peux mettre l'instruction sur la meme ligne que le If

Si tu a plus d'instruction Si tu veux tout ecrire sur un eligne alors il faut des :

mais alors le endif est inutile.

Pour ne pas avoir de demande de confirmation pour effacer utilise Application.DisplayAlerts = False  (ne pas oublier de le remettre à TRUE)

@+: Ju£i?n
Pensez: Réponse acceptée
0
monaldinho Messages postés 74 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 25 octobre 2007
23 juil. 2007 à 18:30
merci jrivet!


ca marche nikel !

bonne soirée à toi!

 faites comme moi, éssayer d'éviter le coté obscur de la force
0
Rejoignez-nous