Bonjour,
j'aurai besoin dans un classeur excel, de supprimer une feuille si elle existe!
pourriez-vous m'aider?
Merci d'avance,
Benoit
Bonjour,
j'aurai besoin dans un classeur excel, de supprimer une feuille si elle existe!
pourriez-vous m'aider?
Merci d'avance,
Benoit
Bonjour
Essai
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 For CompA = 1 To Sheets.Count Sheets(CompA).Name ="Toto" then Sheets(CompA).Delete Next CompA
Bon Courage
Bonjour et bienvenue sur nos forums.
Voici une méthode qui fonctionne. Elle est minimaliste car elle ne gère pas l'erreur éventuelle rencontrée (verrouillage de la structure, par exemple).
Néanmoins, elle devrait te permettre de t'en sortir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 On Error Resume Next Application.DisplayAlerts = False Sheets("feuil5").Delete Application.DisplayAlerts = True
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Merci à vous deux!
les deux solutions ont marchés, mais j'ai préféré mettre celle de pierre fauconnier pour éviter d'avoir le message "êtes-vous sur de vouloir supprimer"
Et encore désolé d'avoir posté deux questions dans le même message, je vous jure, chef, ça ne se reproduira plus!
bonne journée,
benoit
Petite précision sur le code de pierre: si tu place du code derrière, surtout n'oublie pas de mettre l'instruction On Error Goto 0 avant ton code, sinon tu peux avoir des problèmes dans ton code et ne pas les détecter.
Je te suggère donc cette syntaxe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Application.DisplayAlerts = False On Error Resume Next Sheets("feuil5").Delete On Error Goto 0 Application.DisplayAlerts = True ' Ici ton code
Remarque judicieuse de Decondelite.
Au départ, j'avais voulu donner ma méthode, mais elle peut sembler lourde à certains.
Pourtant, je la préfère à une technique qui utilise la gestion des erreurs.
La voici. Elle s'appuie sur une fonction qui teste l'existence de la feuille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Function FeuilleExiste(Nom As String) As Boolean Dim sh As Object For Each sh In Sheets If UCase(sh.Name) = UCase(Nom) Then FeuilleExiste = True Exit For End If Next End Function Sub SupprimerFeuille() Application.DisplayAlerts = False If FeuilleExiste("feuil1") Then Sheets("feuil1").Delete Application.DisplayAlerts = True End Sub
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Partager