msgbox si quelqu'un veut midifier une feuille

  • Initiateur de la discussion Initiateur de la discussion Darnel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Darnel

XLDnaute Impliqué
Bonjour à tous :


Je cherche à faire apparaitre un msgbox quand quelqu'un veut modifier n'importe quelle cellule d'une feuille.

Je sais comment faire apparaitre un msgbox et comment y mettre du texte, mais il me manque la partie en rouge:

If "tentative de modification de la feuille" then

msgbox...etc

la feuille est protégée (mais pas de mot de passe car c'est pour le boulot et je veux que quelqu'un qui s'y connait puisse faire les modifs qu'il veut)
je veux juste éviter que n'importe qui ne me modifie une feuille qui ne sert qu'a recapituler des données. j'ai creer un bouton modifier, mais un collegue n'a pas compris et m'a fait sauter la protection ( c'est le seul qui devait savoir le faire ... mdr ) et, le fichier n'étant pas fait pour etre utilisé comme ça, il me l'a mis en vrac...
Heureusement que j'ai mis d'autres gardes fous, mais lui il a perdu ses modifs ...
Bref je veux juste un message qui dise quand on veux modifier la feuille : pour modifier cliquez sur le bouton modifier.
Merci pour votre aide
 
Re : msgbox si quelqu'un veut midifier une feuille

Bonjour Darnel,

J'ai peut-être pas tout compris ?

Tu peux placer une macro évènementielle dans le module de feuille :


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "Pas touche à ma feuille !"
End Sub

A chaque changement de cellule, le message apparaît.

Cordialement

Bernard
 
Re : msgbox si quelqu'un veut midifier une feuille

Bonjour CBernardT


C'est pas mal comme solution, je vais garder ça d'ici à ce que je trouve mieux. disons pour être plus clair qu'il me faudrai un code qui face ce que la protection de feuille fait, mais que je puisse mettre le message que je veux.

Ou alors, un code qui se déclenche lorsque l'on veux oter la protection de la feuille et qui affiche mon message.

En espérant avoir été plus claire

Merci pour ton aide.
 
Re : msgbox si quelqu'un veut midifier une feuille

Bonjour Darnel, CBernardT, le Forum,

Si j'ai bien compris le problème, ci-dessous une façon d'obtenir ce que tu souhaites (code à copier dans le module de code de la feuille cible) :

Code:
[SIZE=2][COLOR=GRAY][B][I]DANS LE MODULE DE CODE DE LA FEUILLE[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] Worksheet_Change([COLOR=NAVY]ByVal[/COLOR] Target [COLOR=NAVY]As[/COLOR] Range)
[COLOR=GREEN]'myDearFriend![/COLOR]
[COLOR=NAVY]Static[/COLOR] vUndo [COLOR=NAVY]As Boolean
    If[/COLOR] vUndo [COLOR=NAVY]Then[/COLOR]       [COLOR=GREEN]'pour empêcher la macro de tourner en boucle ![/COLOR]
        vUndo = [COLOR=NAVY]Not[/COLOR] vUndo
    [COLOR=NAVY]Else
        If[/COLOR] MsgBox("Vous êtes-sûr de ce que vous faites ?", vbQuestion + vbYesNo, "Modification") = vbNo [COLOR=NAVY]Then[/COLOR]
            vUndo = [COLOR=NAVY]True[/COLOR]
            Application.Undo
        [COLOR=NAVY]End If
    End If
End Sub[/COLOR][/SIZE]
Cordialement,
 
Re : msgbox si quelqu'un veut midifier une feuille

bonjour myDearFriend,

Malheureusement, ton code semble bugger :

Je pense que c'est parceque le seul moyen d'arriver sur la feuille à proteger est une autre macro qui incrémente automatiquement la feuille avec des formules.

De plus, quand je met oui, il me repose la question en boucle... et quand je met non : le deboggeur s'ouvre.

Je commence seulement à me débrouiller en vb, et je ne maîtrise pas bien du tout les codes comme le tien.

Merci de l'interet que tu porte à mon problème
 
Re : msgbox si quelqu'un veut midifier une feuille

Re


Ok, je comprend a peu pres d'ou vient le problème :

la feuille que je veux protéger avec ta macro n'est accessible que par le biais d'une autre macro, qui en plus d'activer la feuille, effectue une cinquantaine d'incrémentations sur cette feuille
D'ou le fait que le message apparait sans cesse avant même d'être arrivé sur la feuille.

Peut être qu'en mettant une condition du type : si feuille active est protégée , alors application de la macro, sinon, standby

genre

Private Sub Worksheet_Change(ByVal Target As Range)
'myDearFriend!
If ActiveSheet.Unprotect = True Then
ne pas executer le code,
Else
Static vUndo As Boolean
If
vUndo Then 'pour empêcher la macro de tourner en boucle !
vUndo = Not vUndo
Else
If
MsgBox("Vous êtes-sûr de ce que vous faites ?", vbQuestion + vbYesNo, "Modification") = vbNo Then
vUndo = True
Application.Undo
End If
End If
End Sub



Comme tu peux le constater, je ne suis pas encore très doué en syntaxe vb, donc un coup de main est le bienvenu.
Je pense à ca car durant l'execution de la macro qui amène sur la feuille, la protection est désactivée, puis réactivée à la fin.
bref, qu'en penses tu ?
 
Re : msgbox si quelqu'un veut midifier une feuille

Re,
Darnel à dit:
Peut être qu'en mettant une condition du type : si feuille active est protégée , alors application de la macro, sinon, standby
...
Je pense à ca car durant l'execution de la macro qui amène sur la feuille, la protection est désactivée, puis réactivée à la fin.
bref, qu'en penses tu ?

A vrai dire, je n'en pense pas grand chose... lol
En partant sur cette voie, je sens pointée une belle usine à gaz...
Je résume ce que j'ai compris : tu as une macro qui active la feuille, la déprotège, effectue des modifications sur la feuille (je ne sais pas ce que tu entends par "incrémentations"), puis reprotège la feuille.

Désactiver la macro que je t'ai proposé si la feuille est protégée, ne changera rien à ton problème je pense, d'autant que si la feuille est protégée, il n'y a plus de modification de l'utilisateur à ce moment là.

Le plantage que tu rencontrais est "normal" car Application.undo ne peut répondre à des modifs effectuées par macro.

Désolé, de ne pas avoir d'autre solution à te proposer.

Cordialement,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

D
Réponses
0
Affichages
626
desquiens.gabriel@hotmail
D
Réponses
12
Affichages
1 K
Retour