Code VB : suppression d'une feuille excel si elle existe

Résolu
cs_malika_i Messages postés 38 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 29 juin 2007 - 21 juin 2007 à 18:52
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 - 21 juin 2007 à 22:27
Bonjour,

Avez une idée de code pour supprimer une feuille excel si elle existe. Voici mon code mais il ne marche pas:

If Sheets("feuil1").value = 1 Then Sheets("feuil1").Delete
end if
A voir également:

11 réponses

cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 juin 2007 à 19:59
J'ai trouvé un code pas trop dégueux

For i = 1 To ThisWorkbook.Sheets.Count

If ThisWorkbook.Sheets.Item(i).Name = "Feuil1" Then
    Sheets("Feuil1").Delete
End If

Next
3
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 juin 2007 à 19:03
Salut, j'ai placé le code

Sheets("feuil1").Delete

dans thisworkbook et ca a fonctionné. Tu es bien en VB.net car moi j'ai essayé sur Excel direct. Donc soit tu dois préciser le workbook soit bah, je sais pas.

il sera peut nécessaire de désactiver les alertes Excel (Displayalerts je crois).
0
cs_malika_i Messages postés 38 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 29 juin 2007
21 juin 2007 à 19:11
merci Nicko11,

Ma macro ne fonctionne pas car il n'y a aucune feuille existante.
En gros, je gére un projet et des feuilles se créent (et il faut à chaque fois les supprimer et en recréer), mais le probléme se pose au début de mon projet alors qu'il n'y a aucune feuille existante.

Par exemple, j'indique ceci :
If Sheets("rendements").Activate Then Sheets("rendements").Delete
end if

Ce code fonctionne parfaitement lorsque que cette feuille existe, mais au début de mon projet, VB ne la reconnait pas ce qui est logique puisqu'elle n'existe pas. C'est aussi pour ça que j'indique un if...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
21 juin 2007 à 19:23
Salut à tous,

  Croyez-vous vraiment que Malika apprendra à ouvrir ses discussion dans la section qui convient si, sans même lui faire observer son erreur, on continue à lui répondre dans la section VB.Net à des questions relatives à VBA ?
  Quelle raison aurait-elle de corriger cette attitude ? Aucune, à mon avis...
   Le plus grave est que ces "choses-là" font apparemment "de plus en plus de petits" (on le voit maintenant trop bien quotidennement) car les nouveaux arrivés, témoins de ces faits, prennent le même chemin...http://www.vbfrance.com/infomsg_CHECHBOX-SUR-EXCEL-BOUTON_967720.aspx


  Il y a là, à mon sens, une responsabilité tout-à-fait partagée.
0

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

Posez votre question
cs_malika_i Messages postés 38 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 29 juin 2007
21 juin 2007 à 19:28
oula, désolée pour l'erreur (je ne suis pas débutante pour rien ) ..

Mr l'Administrateur,

Pouvez-vous déplacer mes requêtes dans le théme VBA/Débutant svp?

Merci, je ne referais plus cette erreur...
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 juin 2007 à 19:37
C'est une bonne reaction mais la prochaine fois penses s'y avant car je me posait la questions.

N'y a t'il pas une fonction IsExists sur Excel qui te permettra de savoir si Feuil1 appartient bien a la collection Sheets. J'essaies de mon coté.
0
cs_malika_i Messages postés 38 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 29 juin 2007
21 juin 2007 à 20:05
merci Nicko11,


ça marche du tonnerre!
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 juin 2007 à 20:08
Allé encore mieux car j'ai vu qu'il pouvais y avoir une erreur

Public Sub test()

For i = 1 To ThisWorkbook.Sheets.Count

If ThisWorkbook.Sheets.Item(i).Name = "Feuil1" Then
    Application.DisplayAlerts = False
    ThisWorkbook.Sheets("Feuil1").Delete
    Application.DisplayAlerts = False
    Exit For
End If

Next

End Sub
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 juin 2007 à 20:09
Heu dsl faut bien sur remettre
    Application.DisplayAlerts = true apres la suppression
 
0
cs_malika_i Messages postés 38 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 29 juin 2007
21 juin 2007 à 20:13
ok mais dans ton second code, je serai obligé de retourné dans le VB pour changer le paramètre et sachant que je ne serais pas l'utlisateur, je préfére garder ton premier code qui m'a l'air tout a fait correct
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
21 juin 2007 à 22:27
En fait, ce que je disais c'est de changer la ligne.

Public Sub test()

For i = 1 To ThisWorkbook.Sheets.Count

If ThisWorkbook.Sheets.Item(i).Name = "Feuil1" Then
    Application.DisplayAlerts = False
    ThisWorkbook.Sheets("Feuil1").Delete
    Application.DisplayAlerts = True
    Exit For
End If

Next

End Sub

Mais bon c'est toi qui choisit de toute maniere la facon dont tu veux gérer. A+
0
Rejoignez-nous