XL 2016 Supprimer une feuille par macro si le texte d'une cellule est modifier

berru76

XLDnaute Occasionnel
Bonjour
Est il possible de supprimer une feuille par macro si le texte d'une cellule est modifier
Exemple supprimer feuille "inscriptions" si le texte de la cellule C1 de la feuille "Nous" est modifier
Merci pour votre aide
 

Pièces jointes

  • Securiser.xlsm
    201.1 KB · Affichages: 4
Solution
Bonjour Berru, Phil,
Une autre approche en PJ.
La macro se déclenche automatiquement lorsqu'on modifie la valeur de Nous C1, avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [C1]) Is Nothing Then
        On Error Resume Next
        Sheets("Inscriptions").Name = Sheets("Inscriptions").Name
        If Err.Number <> 0 Then Exit Sub    ' Si la feuille Inscriptions n'existe pas on sort
        Application.ScreenUpdating = False
        If MsgBox("Etes vous bien sur de vouloir supprimer la feuille Inscriptions ?", vbYesNo, "Titre ") = vbYes Then
            Application.DisplayAlerts = False
            Sheets("Inscriptions").Delete
        End If
    End If
Fin...

soan

XLDnaute Barbatruc
Inactif
@berru76

j'avais cité ton petit paragraphe, dont ceci :

...et après on m'annonce un bug

ta réponse est celle-ci :

pour soan
les concours fonctionnent bien (+d'un an d'utilisation) etc...

en fait, mon post #13 n'était pas par rapport à un bug quelconque mais par rapport à ceci : « Je partage les concours avec d'autres clubs » ; c'était juste pour t'informer que tu pouvais éventuellement envoyer un fichier PDF plutôt qu'un fichier Excel ... à condition que les clubs destinataires n'ont qu'à lire tes données, sans avoir à rien modifier !

soan
 
Dernière édition:

berru76

XLDnaute Occasionnel
J'ai bien testé avec fichier du message 11
j'ai verifié en Feuille 20 bien mis "nous" en AI2
lorsque je lance aller a la feuille me supprime directement la feuille impression pourtant vu que le texte est bon ne devrais pas

Pour info J ai enlever le message d'avertissement de la macro sylvanu
Merci
 

Pièces jointes

  • Supppression feuille Inscriptions V2 (1).xlsm
    334 KB · Affichages: 3

Phil69970

XLDnaute Barbatruc
@berru76

Gloups .... Autant pour moi j'ai compris à l'envers o_O c'est à dire:

Sheets("20").[AI2] = "nous" alors suppression

Il suffit de modifier la condition

If Sheets("20").[AI2] = "nous" Then
Par
If Sheets("20").[AI2] <> "nous" Then

et le tour est joué ;)

Je crois que tu confonds message d'avertissement d'excel

Application.DisplayAlerts
Si DisplayAlerts est sur true ou false excel déclenche un message d'avertissement ou pas

Pour info J ai enlever le message d'avertissement de la macro sylvanu
Et message fait par une macro dans le code
If MsgBox("Etes vous bien sur de vouloir supprimer la feuille Inscriptions ?", vbYesNo, "Titre ") = vbYes Then

Ici tu as un message qui te demande de confirmer la suppression c'est un Msgbox fait par une macro

*J'ai mis le fichier modifié

@Phil69970
 

Pièces jointes

  • Supppression feuille Inscriptions V3.xlsm
    362.7 KB · Affichages: 7

berru76

XLDnaute Occasionnel
Apres un essai La cela fonctionne bien sur la feuille 20

mais j'ai oublié avoir pour le concours de 20 a 96 des feuilles toutes identiques au niveaux de la cellule concernée
serait il possible dans la macro "supprimer" au lieu
If Sheets("20") mettre de 20 a 96
car si je fais exemple Aller en feuille 24 actuellement forcément cela ne fonctionne pas
Merci
 

Phil69970

XLDnaute Barbatruc
@berru76

Si le critère du nombre est cette cellule

1655407054589.png

On peut mettre une variable style

If Sheets(x).[AI2] <> "nous" Then
Ou x est le nom de ta feuille

Sinon expliquer comment on connait le nom (nombre) de la feuille

@Phil69970
 

berru76

XLDnaute Occasionnel
Bonsoir
en cas de changement de nom
la macro supprime bien la feuille inscriptions mais annonce erreur 9
si je clic sur débogage message suivant
A+
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    6.7 KB · Affichages: 16
Dernière édition:

berru76

XLDnaute Occasionnel
Bonjour Berru, Phil,
Une autre approche en PJ.
La macro se déclenche automatiquement lorsqu'on modifie la valeur de Nous C1, avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [C1]) Is Nothing Then
        On Error Resume Next
        Sheets("Inscriptions").Name = Sheets("Inscriptions").Name
        If Err.Number <> 0 Then Exit Sub    ' Si la feuille Inscriptions n'existe pas on sort
        Application.ScreenUpdating = False
        If MsgBox("Etes vous bien sur de vouloir supprimer la feuille Inscriptions ?", vbYesNo, "Titre ") = vbYes Then
            Application.DisplayAlerts = False
            Sheets("Inscriptions").Delete
        End If
    End If
Fin:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
A vous d'adapter à votre fichier, la macro se trouve dans la feuille Nous.
Pour info avant de lancer une nouvelle discussion
pensez vous que cela est possible de faire pareil si code vba est modifier
Merci A+
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@berru76
pensez vous que cela est possible de faire pareil si code vba est modifier

Je ne pense pas que l'on puisse déclencher une macro si on modifie le code VBA mais on peut mettre un MDP sur le code VBA .
Mais il faut garder à l'esprit que le MDP sur excel y compris le code VBA ne dure souvent que le temps de l'écrire o_O et donc est illusoire.

Perso :
1) Je pense que si quelqu'un connait suffisamment excel pour contourner tout ce que tu as mis en place tu perds ton temps.

2) Si au préalable tu fais preuve de pédagogie pour expliquer ce qui va se passer si le 3 arrive ...

3) Si quelqu'un vient me voir (après avoir expliqué le 2) pour m'expliquer qu'il à bricolé le code et/ou les formules et que plus rien ne fonctionne comme il faut .... la 1ere fois je serais peut être sympa (et encore pas sur) mais la 2eme fois c'est certain que je lui dirais clairement de se débrouiller (imagine d'autres mots à la place de débrouiller !🤣 )

Et pour répondre au post #25 je te propose ce fichier.

@Phil69970
 

Pièces jointes

  • Supppression feuille Inscriptions V5.xlsm
    365.1 KB · Affichages: 13

berru76

XLDnaute Occasionnel
Bonsoir
pour version V5 c'est l'Ideal
Je vais pouvoir adapter vos deux solutions dans les 4 concours ( ils n'ont pas tous la même méthode d'utilisation )

Le partage entre quelques clubs m'a permis d'améliorer les concours au fur et à mesure
Maintenant qu'ils sont finis et testés je vais les donner avec le nom de leurs club (de la l'utilité de vos protections) car malheureusement on ne peut pas faire confiance a tout le monde

Vu qu'il y a 2 ans je ne connaissait rien a excel (au moins le covid m'auras servi a quelque chose)

en cherchant et posant des questions sur le web
Je sais que l'on ne peut pas gêner ceux qui si connaissent je voulais surtout découragé les gens de mon niveau Pour le code VBA j'ai vu qu'avec les diverses méthodes le code vba est supprimer

Dans ThisWorkbook il y a une suppression a date du fichier que je vais enlever (car plus utile) mais je me demandait si on pouvait la modifier afin que si le code vba est vide on obtient le même résultat

Dites moi si on peut approfondir cette idée

Merci a vous pour votre aide et patience
Bonjour à tous

@berru76


Je ne pense pas que l'on puisse déclencher une macro si on modifie le code VBA mais on peut mettre un MDP sur le code VBA .
Mais il faut garder à l'esprit que le MDP sur excel y compris le code VBA ne dure souvent que le temps de l'écrire o_O et donc est illusoire.

Perso :
1) Je pense que si quelqu'un connait suffisamment excel pour contourner tout ce que tu as mis en place tu perds ton temps.

2) Si au préalable tu fais preuve de pédagogie pour expliquer ce qui va se passer si le 3 arrive ...

3) Si quelqu'un vient me voir (après avoir expliqué le 2) pour m'expliquer qu'il à bricolé le code et/ou les formules et que plus rien ne fonctionne comme il faut .... la 1ere fois je serais peut être sympa (et encore pas sur) mais la 2eme fois c'est certain que je lui dirais clairement de se débrouiller (imagine d'autres mots à la place de débrouiller !🤣 )

Et pour répondre au post #25 je te propose ce fichier.

@Phil69970
Bonjour à tous

@berru76


Je ne pense pas que l'on puisse déclencher une macro si on modifie le code VBA mais on peut mettre un MDP sur le code VBA .
Mais il faut garder à l'esprit que le MDP sur excel y compris le code VBA ne dure souvent que le temps de l'écrire o_O et donc est illusoire.

Perso :
1) Je pense que si quelqu'un connait suffisamment excel pour contourner tout ce que tu as mis en place tu perds ton temps.

2) Si au préalable tu fais preuve de pédagogie pour expliquer ce qui va se passer si le 3 arrive ...

3) Si quelqu'un vient me voir (après avoir expliqué le 2) pour m'expliquer qu'il à bricolé le code et/ou les formules et que plus rien ne fonctionne comme il faut .... la 1ere fois je serais peut être sympa (et encore pas sur) mais la 2eme fois c'est certain que je lui dirais clairement de se débrouiller (imagine d'autres mots à la place de débrouiller !🤣 )

Et pour répondre au post #25 je te propose ce fichier.

@Phil69970
Bonjour
En essayant de mettre la formule dans mon fichier concours je m'aperçois qu'en utilisant la macro aller a la feuille les boutons de la page d'inscriptions se trouvent incrustés dans la feuille demander
Voyer vous une solution
Merci a vous
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
366
Réponses
2
Affichages
102