OVH Cloud OVH Cloud

Créer un évènement Workbook_SheetDeleted

6 réponses
Avatar
ze_titi
Bonjour à tous

ben voila, tout est dans l'objet.
Je voudrais pouvoir gérer (voire empêcher) la suppression de feuilles dans
un classeur mais cet évènement n'existe pas. Quelqu'un sait-il s'il existe
une combine pour contourner ce manque ?
En fait, il est possible de détecter la suppression d'une feuille mais
seulement à postériori (en utilisant un tableau et l'évènement SheetActivate,
on peut compter le nombre d'éléments dans le tableau et constater...). Je
voudrais empêcher purement et simplement la suppression (sans utiliser
l'artifice des mots de passe)

D'avance merci
--
Cordialement,

ze_titi

6 réponses

Avatar
Xav
Bonjour

à l'ouverture du classeur, mets quelque chose dans le genre

Application.CommandBars("Edit").Controls(847).Enabled = False

qui devrait empêcher d'accéder au menu Edition-Suppression de feuille


--
Cordialement

@+
Xav
"ze_titi" a écrit dans le message de
news:
Bonjour à tous

ben voila, tout est dans l'objet.
Je voudrais pouvoir gérer (voire empêcher) la suppression de feuilles dans
un classeur mais cet évènement n'existe pas. Quelqu'un sait-il s'il existe
une combine pour contourner ce manque ?
En fait, il est possible de détecter la suppression d'une feuille mais
seulement à postériori (en utilisant un tableau et l'évènement
SheetActivate,

on peut compter le nombre d'éléments dans le tableau et constater...). Je
voudrais empêcher purement et simplement la suppression (sans utiliser
l'artifice des mots de passe)

D'avance merci
--
Cordialement,

ze_titi


Avatar
anonymousA
bonjour,

2 solutions possibles:

la 1ere, protéger le classeur ce qui empêchera la suppression des feuilles
mais aussi d'ailleurs d'autres corollaires (insertion, déplacement..). C'est
un peu contaignant.

2eme solution: écrire un petit programme VBA

Set CollControls = Application.CommandBars.FindControls(ID:„7)

For I = 1 To CollControls.Count
CollControls(I).Enabled = false
Next

ce qui invalidera la seule commande "supprimer" du menu Popup qui abrite
cette commande.Attention, est valable tout le temps de la session et pour
tous les ficheris ouverts durant celle-ci. Pour ne la réserver qu'à un seul
fichier , il faut gérer l'evenement Workbook_Deactivate et Workbook_activate
du présent fichier.
Ne résoud cependant pas le problème d'un petit malin qui connait VBA et qui
pourrait la revalider mais c'est quand même pas forcément féquent.

A+



Bonjour à tous

ben voila, tout est dans l'objet.
Je voudrais pouvoir gérer (voire empêcher) la suppression de feuilles dans
un classeur mais cet évènement n'existe pas. Quelqu'un sait-il s'il existe
une combine pour contourner ce manque ?
En fait, il est possible de détecter la suppression d'une feuille mais
seulement à postériori (en utilisant un tableau et l'évènement SheetActivate,
on peut compter le nombre d'éléments dans le tableau et constater...). Je
voudrais empêcher purement et simplement la suppression (sans utiliser
l'artifice des mots de passe)

D'avance merci
--
Cordialement,

ze_titi


Avatar
ze_titi
Ok, merci à tous les deux.
Ca devrait m'aider.

--
Cordialement,

ze_titi



bonjour,

2 solutions possibles:

la 1ere, protéger le classeur ce qui empêchera la suppression des feuilles
mais aussi d'ailleurs d'autres corollaires (insertion, déplacement..). C'est
un peu contaignant.

2eme solution: écrire un petit programme VBA

Set CollControls = Application.CommandBars.FindControls(ID:„7)

For I = 1 To CollControls.Count
CollControls(I).Enabled = false
Next

ce qui invalidera la seule commande "supprimer" du menu Popup qui abrite
cette commande.Attention, est valable tout le temps de la session et pour
tous les ficheris ouverts durant celle-ci. Pour ne la réserver qu'à un seul
fichier , il faut gérer l'evenement Workbook_Deactivate et Workbook_activate
du présent fichier.
Ne résoud cependant pas le problème d'un petit malin qui connait VBA et qui
pourrait la revalider mais c'est quand même pas forcément féquent.

A+



Bonjour à tous

ben voila, tout est dans l'objet.
Je voudrais pouvoir gérer (voire empêcher) la suppression de feuilles dans
un classeur mais cet évènement n'existe pas. Quelqu'un sait-il s'il existe
une combine pour contourner ce manque ?
En fait, il est possible de détecter la suppression d'une feuille mais
seulement à postériori (en utilisant un tableau et l'évènement SheetActivate,
on peut compter le nombre d'éléments dans le tableau et constater...). Je
voudrais empêcher purement et simplement la suppression (sans utiliser
l'artifice des mots de passe)

D'avance merci
--
Cordialement,

ze_titi




Avatar
Xav
Bonjour

en fait, ce que j'ai fait ne fonctionne pas (cela m'apprendra à mettre en
ligne sans tester). Y aurait-il une âme charitable qui pourrait m'expliquer
pourquoi cela ne fonctionne pas?

D'avance merci

--
Cordialement

@+
Xav
"Xav" <xavier(point)herout(at)groupe-cahors(point)com> a écrit dans le
message de news:
Bonjour

à l'ouverture du classeur, mets quelque chose dans le genre

Application.CommandBars("Edit").Controls(847).Enabled = False

qui devrait empêcher d'accéder au menu Edition-Suppression de feuille


--
Cordialement

@+
Xav
"ze_titi" a écrit dans le message de
news:
Bonjour à tous

ben voila, tout est dans l'objet.
Je voudrais pouvoir gérer (voire empêcher) la suppression de feuilles
dans


un classeur mais cet évènement n'existe pas. Quelqu'un sait-il s'il
existe


une combine pour contourner ce manque ?
En fait, il est possible de détecter la suppression d'une feuille mais
seulement à postériori (en utilisant un tableau et l'évènement
SheetActivate,

on peut compter le nombre d'éléments dans le tableau et constater...).
Je


voudrais empêcher purement et simplement la suppression (sans utiliser
l'artifice des mots de passe)

D'avance merci
--
Cordialement,

ze_titi






Avatar
anonymousA
bonjour,

regarde ma réponse au demandeur et je pense que tu comprendras tout
seul.C'est ta syntaxe de l'instruction qui n'est pas bonne.

A+


Bonjour

en fait, ce que j'ai fait ne fonctionne pas (cela m'apprendra à mettre en
ligne sans tester). Y aurait-il une âme charitable qui pourrait m'expliquer
pourquoi cela ne fonctionne pas?

D'avance merci

--
Cordialement

@+
Xav
"Xav" <xavier(point)herout(at)groupe-cahors(point)com> a écrit dans le
message de news:
Bonjour

à l'ouverture du classeur, mets quelque chose dans le genre

Application.CommandBars("Edit").Controls(847).Enabled = False

qui devrait empêcher d'accéder au menu Edition-Suppression de feuille


--
Cordialement

@+
Xav
"ze_titi" a écrit dans le message de
news:
Bonjour à tous

ben voila, tout est dans l'objet.
Je voudrais pouvoir gérer (voire empêcher) la suppression de feuilles
dans


un classeur mais cet évènement n'existe pas. Quelqu'un sait-il s'il
existe


une combine pour contourner ce manque ?
En fait, il est possible de détecter la suppression d'une feuille mais
seulement à postériori (en utilisant un tableau et l'évènement
SheetActivate,

on peut compter le nombre d'éléments dans le tableau et constater...).
Je


voudrais empêcher purement et simplement la suppression (sans utiliser
l'artifice des mots de passe)

D'avance merci
--
Cordialement,

ze_titi











Avatar
Xav
merci de ta réponse

Je vais profiter des vacances pour essayer de comprendre toutes ces méthodes
et autres objets

--
Cordialement

@+
Xav
"anonymousA" a écrit dans le message
de news:
bonjour,

regarde ma réponse au demandeur et je pense que tu comprendras tout
seul.C'est ta syntaxe de l'instruction qui n'est pas bonne.

A+


Bonjour

en fait, ce que j'ai fait ne fonctionne pas (cela m'apprendra à mettre
en


ligne sans tester). Y aurait-il une âme charitable qui pourrait
m'expliquer


pourquoi cela ne fonctionne pas?

D'avance merci

--
Cordialement

@+
Xav
"Xav" <xavier(point)herout(at)groupe-cahors(point)com> a écrit dans le
message de news:
Bonjour

à l'ouverture du classeur, mets quelque chose dans le genre

Application.CommandBars("Edit").Controls(847).Enabled = False

qui devrait empêcher d'accéder au menu Edition-Suppression de feuille


--
Cordialement

@+
Xav
"ze_titi" a écrit dans le message
de



news:
Bonjour à tous

ben voila, tout est dans l'objet.
Je voudrais pouvoir gérer (voire empêcher) la suppression de
feuilles




dans
un classeur mais cet évènement n'existe pas. Quelqu'un sait-il s'il
existe


une combine pour contourner ce manque ?
En fait, il est possible de détecter la suppression d'une feuille
mais




seulement à postériori (en utilisant un tableau et l'évènement
SheetActivate,

on peut compter le nombre d'éléments dans le tableau et
constater...).




Je
voudrais empêcher purement et simplement la suppression (sans
utiliser




l'artifice des mots de passe)

D'avance merci
--
Cordialement,

ze_titi