Suppression de feuilles par VBA

Résolu/Fermé
Guy_L Messages postés 170 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 26 mars 2024 - 29 sept. 2020 à 12:49
yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 - 30 sept. 2020 à 17:34
Bonjour,
J'ai utilisé un code trouvé sur le Net pour supprimer des feuilles si existantes dans mon fichier, mais ça n'a aucun effet, voici le script
Public Function FeuilExiste(F As String) As Boolean
    On Error GoTo Err_FeuilExiste
    FeuilExiste = False
    FeuilExiste = Not ActiveWorkbook.Worksheets(F) Is Nothing
Err_FeuilExiste:
End Function
Sub Suppression()
    If FeuilExiste("Alpha(2)") Then
            Application.DisplayAlerts = False
            Sheets("Alpha(2)").Select
            Sheets("Alpha(2)").Delete
            Application.DisplayAlerts = True
    Else
    End If
    If FeuilExiste("Beta(2)") Then
            Application.DisplayAlerts = False
            Sheets("Beta(2)").Select
            Sheets("Beta(2)").Delete
            Application.DisplayAlerts = True
    Else
    End If
End Sub


Merci


Configuration: Windows / Firefox 81.0
A voir également:

4 réponses

yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
29 sept. 2020 à 13:00
bonjour,
à ta place, je ferais plutôt ainsi:
    If FeuilExiste("Alpha(2)") Then
            Application.DisplayAlerts = False
            Sheets("Alpha(2)").Delete
            Application.DisplayAlerts = True
    Else
            msgbox "Alpha(2) est absent"
    End If
0
Guy_L Messages postés 170 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 26 mars 2024 1
29 sept. 2020 à 20:00
C'est comme ça que je l'avais d'abord écrit (sans la partie Else, qui, dans mon cas, n'est pas nécessaire), et comme ça ne fonctionnait pas, j'ai supposé qu'il fallait ajouter la sélection de la feuille. Hélas, ça ne suffit toujours pas.
0
yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
29 sept. 2020 à 23:53
que se passe-t'il quand tu testes ceci?
Sub Suppression()
    If FeuilExiste("Alpha(2)") Then
            Application.DisplayAlerts = False
            Sheets("Alpha(2)").Delete
            Application.DisplayAlerts = True
            MsgBox "Alpha(2) est supprimé"
    Else
            MsgBox "Alpha(2) est absent"
    End If
    If FeuilExiste("Beta(2)") Then
            Application.DisplayAlerts = False
            Sheets("Beta(2)").Delete
            Application.DisplayAlerts = True
            MsgBox "Beta(2) est supprimé"
    Else
        MsgBox "Beta(2) est absent"
    End If
End Sub
0
Guy_L Messages postés 170 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 26 mars 2024 1
30 sept. 2020 à 09:37
merci yg, grâce à ton post, j'ai compris ce qui n'allait pas: quand on fait une copie de feuille, le nouveau nom n'est pas Alpha(2) mais Alpha (2) (avec un espace), d'où le fait que la macro ne détectait pas la feuille.
Merci encore
0
yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
30 sept. 2020 à 14:45
en effet, penser "sans la partie Else, qui, dans mon cas, n'est pas nécessaire", c'est la meilleure manière de ne pas progresser.
en plus, persister à ne pas essayer, ...
0
Guy_L Messages postés 170 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 26 mars 2024 1 > yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
Modifié le 30 sept. 2020 à 16:12
Qui vous dit que je n'ai pas essayé ?
C'est comme ça que j'ai vu mon erreur justement puisque la Box renvoyait "Alpha(2) est absent".
Il le semble même avoir dit merci pour cela.
Attention à ne pas décourager les novices, c'est la meilleure façon de les écarter du monde des participants à un forum. En se montrant présomptueux, on risque le braquage (heureusement, j'ai passé l'âge).
0
yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > Guy_L Messages postés 170 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 26 mars 2024
30 sept. 2020 à 16:41
Il me semble clair, dans ton message du 29 sept. 2020 à 20:00, que tu n'avais pas essayé ma suggestion de 13h.

Tenant compte du comportement que j'ai parfois observé chez certains novices, je t'ai donné une seconde et dernière chance, et t'ai donc demandé plus explicitement de tester ma suggestion.
Trouves-tu présomptueux d'attendre un peu de respect, et que les suggestions faites soient prises au sérieux, et testées?
Que de plus présomptueux, presque arrogant, que d'écrire "dans mon cas, n'est pas nécessaire", alors que c'était la première chose à faire. En tous cas, de l'aveuglement caractérisé.
Je pense que l'humilité aide à progresser, tout autant que se poser des question et se remettre en cause.
0
Guy_L Messages postés 170 Date d'inscription samedi 16 septembre 2006 Statut Membre Dernière intervention 26 mars 2024 1
Modifié le 30 sept. 2020 à 17:17
Je ne comprends pas cette colère qui n'a aucun sens ni sa place dans un échange cordial.
Ce qui m'a fait "bondir" c'est cette remarque :
"en plus, persister à ne pas essayer, ... "
qui est fausse et déplacée, car présomptueuse (vous ne saviez même pas si j'avais essayé).
En plus elle a un côté agressif (persister) qui ne pouvait que susciter chez moi une réaction négative.
C'est dommage car vous m'avez pourtant sorti d'une impasse, mais ce comportement hautain vient nettement polluer un échange qui se voulait courtois.
Je suis déçu

un dernier mot concernant "Il me semble clair, dans ton message du 29 sept. 2020 à 20:00, que tu n'avais pas essayé ma suggestion de 13h." Je ne sais pas pour vous, mais après une journée de travail, à 20h, je n'avais effectivement pas eu le temps de tester. Mais de là à s'emporter avec une attitude agressive à mon égard ...
0
yg_be Messages postés 22703 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
30 sept. 2020 à 17:34
Je suggère, quand tu reçois une suggestion, de la tester avant d'écrire "Hélas, ça ne suffit toujours pas".
Par respect.
0