Code VB : suppression d'une feuille excel si elle existe [Résolu]

cs_malika_i 38 Messages postés mercredi 20 juin 2007Date d'inscription 29 juin 2007 Dernière intervention - 21 juin 2007 à 18:52 - Dernière réponse : cs_Nicko11 1141 Messages postés mercredi 7 mars 2007Date d'inscription 19 septembre 2007 Dernière intervention
- 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
Afficher la suite 

Votre réponse

11 réponses

cs_Nicko11 1141 Messages postés mercredi 7 mars 2007Date d'inscription 19 septembre 2007 Dernière intervention - 21 juin 2007 à 19:59
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Nicko11
cs_Nicko11 1141 Messages postés mercredi 7 mars 2007Date d'inscription 19 septembre 2007 Dernière intervention - 21 juin 2007 à 19:03
0
Utile
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).
Commenter la réponse de cs_Nicko11
cs_malika_i 38 Messages postés mercredi 20 juin 2007Date d'inscription 29 juin 2007 Dernière intervention - 21 juin 2007 à 19:11
0
Utile
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...
Commenter la réponse de cs_malika_i
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 21 juin 2007 à 19:23
0
Utile
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.
Commenter la réponse de jmfmarques
cs_malika_i 38 Messages postés mercredi 20 juin 2007Date d'inscription 29 juin 2007 Dernière intervention - 21 juin 2007 à 19:28
0
Utile
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...
Commenter la réponse de cs_malika_i
cs_Nicko11 1141 Messages postés mercredi 7 mars 2007Date d'inscription 19 septembre 2007 Dernière intervention - 21 juin 2007 à 19:37
0
Utile
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é.
Commenter la réponse de cs_Nicko11
cs_malika_i 38 Messages postés mercredi 20 juin 2007Date d'inscription 29 juin 2007 Dernière intervention - 21 juin 2007 à 20:05
0
Utile
merci Nicko11,


ça marche du tonnerre!
Commenter la réponse de cs_malika_i
cs_Nicko11 1141 Messages postés mercredi 7 mars 2007Date d'inscription 19 septembre 2007 Dernière intervention - 21 juin 2007 à 20:08
0
Utile
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
Commenter la réponse de cs_Nicko11
cs_Nicko11 1141 Messages postés mercredi 7 mars 2007Date d'inscription 19 septembre 2007 Dernière intervention - 21 juin 2007 à 20:09
0
Utile
Heu dsl faut bien sur remettre
    Application.DisplayAlerts = true apres la suppression
 
Commenter la réponse de cs_Nicko11
cs_malika_i 38 Messages postés mercredi 20 juin 2007Date d'inscription 29 juin 2007 Dernière intervention - 21 juin 2007 à 20:13
0
Utile
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
Commenter la réponse de cs_malika_i
cs_Nicko11 1141 Messages postés mercredi 7 mars 2007Date d'inscription 19 septembre 2007 Dernière intervention - 21 juin 2007 à 22:27
0
Utile
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+
Commenter la réponse de cs_Nicko11

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.