Protection maximale de ma feuille

Le
sunburn
Bonjour,
comment vérouiller l'utilisateur, pour éviter qu'il ne déplace
malencontreusement une cellule ?
En fait, je ne veux lui autoriser de ne faire que Ctrl+C et Ctrl+V, et
collage spécial (là, comment puis-je définir un raccourci pour ça).
Merci.
YANN
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #19588171
Bonjour SunBurn,

Voici une façon de procéder :

Si tu veux utiliser les événements "Activate" est "Desactivate"
pour appeler la procédure "Test" et "Remettre_Comme_Avant"

La procédure "CollageSpecial" doit être dans un module standard.

'-----------------------------------------------
Sub test()
Application.OnKey "^v", "CollageSpecial"
End Sub
'-----------------------------------------------
Sub CollageSpecial()
ActiveSheet.Unprotect
Application.Dialogs(xlDialogPasteSpecial).Show
ActiveCell.PasteSpecial (xlPasteValues)
ActiveSheet.Protect
End Sub
'-----------------------------------------------
Sub Remettre_Comme_Avant()
Application.OnKey "^v"
End Sub
'-----------------------------------------------



"sunburn" discussion :
Bonjour,
comment vérouiller l'utilisateur, pour éviter qu'il ne déplace
malencontreusement une cellule ?
En fait, je ne veux lui autoriser de ne faire que Ctrl+C et Ctrl+V, et
collage spécial (là, comment puis-je définir un raccourci pour ça).
Merci.
YANN
sunburn
Le #19592541
Bonjour,
donc si j'ai bien compris, si pour tout mon classeur, je bloque tout (toutes
les touches Ctrl + le clic droit, puis après que j'autorise le Ctrl+C et le
Ctrl+V défini par moi, je vais arriver à avoir une protection pas trop mal ?
par contre, j'ai tout mis dans un module standard.
ça marche pas, tu peux m'aider plus ?
je te remercie.
YANN

"MichDenis" a écrit :

Bonjour SunBurn,

Voici une façon de procéder :

Si tu veux utiliser les événements "Activate" est "Desactivate"
pour appeler la procédure "Test" et "Remettre_Comme_Avant"

La procédure "CollageSpecial" doit être dans un module standard.

'-----------------------------------------------
Sub test()
Application.OnKey "^v", "CollageSpecial"
End Sub
'-----------------------------------------------
Sub CollageSpecial()
ActiveSheet.Unprotect
Application.Dialogs(xlDialogPasteSpecial).Show
ActiveCell.PasteSpecial (xlPasteValues)
ActiveSheet.Protect
End Sub
'-----------------------------------------------
Sub Remettre_Comme_Avant()
Application.OnKey "^v"
End Sub
'-----------------------------------------------



"sunburn" discussion :
Bonjour,
comment vérouiller l'utilisateur, pour éviter qu'il ne déplace
malencontreusement une cellule ?
En fait, je ne veux lui autoriser de ne faire que Ctrl+C et Ctrl+V, et
collage spécial (là, comment puis-je définir un raccourci pour ça).
Merci.
YANN




MichDenis
Le #19593761
Tu mets tout ça dans un module standard.
Tu appelles la procédure "Modifier_Les_Raccourcis"
pour modifier le travail des raccourci.
Avant la fermeture de ton fichier ou à la désactivation
de celui-ci, tu remets les raccourcis normaux en place
en appelant la procédure : Les_Raccourci_Normaux

Déclaration de la variable dans le haut du module
Dim Rg As Variant
'------------------------------------------
Sub Modifier_Les_Raccourcis()
Application.OnKey "^v", "CollageSpecial"
Application.OnKey "^c", "copieSpecial"
End Sub
'-----------------------------------------------
Sub Les_Raccourci_Normaux()
Application.OnKey "^v"
Application.OnKey "^c"
End Sub
'------------------------------------------
Sub Déprotéger()
ActiveSheet.Unprotect
DoEvents
End Sub
'------------------------------------------
Sub CollageSpecial()
ActiveSheet.Unprotect
Rg.Copy
Application.Dialogs(xlDialogPasteSpecial).Show
ActiveSheet.Protect
'Ou l'autre ligne, fait le même travail.
'Application.CommandBars.FindControl(ID:u5).Execute
End Sub
'------------------------------------------
Sub copieSpecial()
Set Rg = Selection
Application.CommandBars.FindControl(ID:).Execute
End Sub
'------------------------------------------






"sunburn" discussion :
Bonjour,
donc si j'ai bien compris, si pour tout mon classeur, je bloque tout (toutes
les touches Ctrl + le clic droit, puis après que j'autorise le Ctrl+C et le
Ctrl+V défini par moi, je vais arriver à avoir une protection pas trop mal ?
par contre, j'ai tout mis dans un module standard.
ça marche pas, tu peux m'aider plus ?
je te remercie.
YANN

"MichDenis" a écrit :

Bonjour SunBurn,

Voici une façon de procéder :

Si tu veux utiliser les événements "Activate" est "Desactivate"
pour appeler la procédure "Test" et "Remettre_Comme_Avant"

La procédure "CollageSpecial" doit être dans un module standard.

'-----------------------------------------------
Sub test()
Application.OnKey "^v", "CollageSpecial"
End Sub
'-----------------------------------------------
Sub CollageSpecial()
ActiveSheet.Unprotect
Application.Dialogs(xlDialogPasteSpecial).Show
ActiveCell.PasteSpecial (xlPasteValues)
ActiveSheet.Protect
End Sub
'-----------------------------------------------
Sub Remettre_Comme_Avant()
Application.OnKey "^v"
End Sub
'-----------------------------------------------



"sunburn" discussion :
Bonjour,
comment vérouiller l'utilisateur, pour éviter qu'il ne déplace
malencontreusement une cellule ?
En fait, je ne veux lui autoriser de ne faire que Ctrl+C et Ctrl+V, et
collage spécial (là, comment puis-je définir un raccourci pour ça).
Merci.
YANN




sunburn
Le #19594101
re,
alors, c'est un peu mieux.
par contre :
. comment ne pas avoir la boite de dialogue, mais obligatoirement du collage
spécial valeur
. pour des cellules fusionnées, ça plante...

merci de ton aide.
YANN

"MichDenis" a écrit :

Tu mets tout ça dans un module standard.
Tu appelles la procédure "Modifier_Les_Raccourcis"
pour modifier le travail des raccourci.
Avant la fermeture de ton fichier ou à la désactivation
de celui-ci, tu remets les raccourcis normaux en place
en appelant la procédure : Les_Raccourci_Normaux

Déclaration de la variable dans le haut du module
Dim Rg As Variant
'------------------------------------------
Sub Modifier_Les_Raccourcis()
Application.OnKey "^v", "CollageSpecial"
Application.OnKey "^c", "copieSpecial"
End Sub
'-----------------------------------------------
Sub Les_Raccourci_Normaux()
Application.OnKey "^v"
Application.OnKey "^c"
End Sub
'------------------------------------------
Sub Déprotéger()
ActiveSheet.Unprotect
DoEvents
End Sub
'------------------------------------------
Sub CollageSpecial()
ActiveSheet.Unprotect
Rg.Copy
Application.Dialogs(xlDialogPasteSpecial).Show
ActiveSheet.Protect
'Ou l'autre ligne, fait le même travail.
'Application.CommandBars.FindControl(ID:u5).Execute
End Sub
'------------------------------------------
Sub copieSpecial()
Set Rg = Selection
Application.CommandBars.FindControl(ID:).Execute
End Sub
'------------------------------------------






"sunburn" discussion :
Bonjour,
donc si j'ai bien compris, si pour tout mon classeur, je bloque tout (toutes
les touches Ctrl + le clic droit, puis après que j'autorise le Ctrl+C et le
Ctrl+V défini par moi, je vais arriver à avoir une protection pas trop mal ?
par contre, j'ai tout mis dans un module standard.
ça marche pas, tu peux m'aider plus ?
je te remercie.
YANN

"MichDenis" a écrit :

> Bonjour SunBurn,
>
> Voici une façon de procéder :
>
> Si tu veux utiliser les événements "Activate" est "Desactivate"
> pour appeler la procédure "Test" et "Remettre_Comme_Avant"
>
> La procédure "CollageSpecial" doit être dans un module standard.
>
> '-----------------------------------------------
> Sub test()
> Application.OnKey "^v", "CollageSpecial"
> End Sub
> '-----------------------------------------------
> Sub CollageSpecial()
> ActiveSheet.Unprotect
> Application.Dialogs(xlDialogPasteSpecial).Show
> ActiveCell.PasteSpecial (xlPasteValues)
> ActiveSheet.Protect
> End Sub
> '-----------------------------------------------
> Sub Remettre_Comme_Avant()
> Application.OnKey "^v"
> End Sub
> '-----------------------------------------------
>
>
>
> "sunburn" > discussion :
> Bonjour,
> comment vérouiller l'utilisateur, pour éviter qu'il ne déplace
> malencontreusement une cellule ?
> En fait, je ne veux lui autoriser de ne faire que Ctrl+C et Ctrl+V, et
> collage spécial (là, comment puis-je définir un raccourci pour ça).
> Merci.
> YANN
>
>



MichDenis
Le #19594501
Remplace dans le message précédent, la procédure de ce nom
par celle-ci. Si tu tentes de coller des données vers une plage où
tu as des cellules fusionnées, tu n'auras pas un message d'erreur
mais la copie ne se fera pas.

Pour ce qui est de tes cellules fusionnées, je n'y peux rien. Même
si la feuille n'était pas protégée, tu aurais le même problème.
Copier des cellules non fusionnées vers des cellules fusionnées,
c'est problématique ! Et, faut pas compter sur moi pour tenter
de développer une vraie usine à gaz !

'----------------------------------------
Sub CollageSpecial()
ActiveSheet.Unprotect
On Error Resume Next
Rg.Copy
ActiveCell.PasteSpecial xlPasteValues
ActiveSheet.Protect
'Application.Dialogs(xlDialogPasteSpecial).Show
'Ou l'autre ligne, fait le même travail.
'Application.CommandBars.FindControl(ID:u5).Execute
End Sub
'----------------------------------------



"sunburn" discussion :
re,
alors, c'est un peu mieux.
par contre :
. comment ne pas avoir la boite de dialogue, mais obligatoirement du collage
spécial valeur
. pour des cellules fusionnées, ça plante...

merci de ton aide.
YANN

"MichDenis" a écrit :

Tu mets tout ça dans un module standard.
Tu appelles la procédure "Modifier_Les_Raccourcis"
pour modifier le travail des raccourci.
Avant la fermeture de ton fichier ou à la désactivation
de celui-ci, tu remets les raccourcis normaux en place
en appelant la procédure : Les_Raccourci_Normaux

Déclaration de la variable dans le haut du module
Dim Rg As Variant
'------------------------------------------
Sub Modifier_Les_Raccourcis()
Application.OnKey "^v", "CollageSpecial"
Application.OnKey "^c", "copieSpecial"
End Sub
'-----------------------------------------------
Sub Les_Raccourci_Normaux()
Application.OnKey "^v"
Application.OnKey "^c"
End Sub
'------------------------------------------
Sub Déprotéger()
ActiveSheet.Unprotect
DoEvents
End Sub
'------------------------------------------
Sub CollageSpecial()
ActiveSheet.Unprotect
Rg.Copy
Application.Dialogs(xlDialogPasteSpecial).Show
ActiveSheet.Protect
'Ou l'autre ligne, fait le même travail.
'Application.CommandBars.FindControl(ID:u5).Execute
End Sub
'------------------------------------------
Sub copieSpecial()
Set Rg = Selection
Application.CommandBars.FindControl(ID:).Execute
End Sub
'------------------------------------------






"sunburn" discussion :
Bonjour,
donc si j'ai bien compris, si pour tout mon classeur, je bloque tout (toutes
les touches Ctrl + le clic droit, puis après que j'autorise le Ctrl+C et le
Ctrl+V défini par moi, je vais arriver à avoir une protection pas trop mal ?
par contre, j'ai tout mis dans un module standard.
ça marche pas, tu peux m'aider plus ?
je te remercie.
YANN

"MichDenis" a écrit :

> Bonjour SunBurn,
>
> Voici une façon de procéder :
>
> Si tu veux utiliser les événements "Activate" est "Desactivate"
> pour appeler la procédure "Test" et "Remettre_Comme_Avant"
>
> La procédure "CollageSpecial" doit être dans un module standard.
>
> '-----------------------------------------------
> Sub test()
> Application.OnKey "^v", "CollageSpecial"
> End Sub
> '-----------------------------------------------
> Sub CollageSpecial()
> ActiveSheet.Unprotect
> Application.Dialogs(xlDialogPasteSpecial).Show
> ActiveCell.PasteSpecial (xlPasteValues)
> ActiveSheet.Protect
> End Sub
> '-----------------------------------------------
> Sub Remettre_Comme_Avant()
> Application.OnKey "^v"
> End Sub
> '-----------------------------------------------
>
>
>
> "sunburn" > discussion :
> Bonjour,
> comment vérouiller l'utilisateur, pour éviter qu'il ne déplace
> malencontreusement une cellule ?
> En fait, je ne veux lui autoriser de ne faire que Ctrl+C et Ctrl+V, et
> collage spécial (là, comment puis-je définir un raccourci pour ça).
> Merci.
> YANN
>
>



sunburn
Le #19600791
re,
en fait, ça ne marche pas comme je voudrais....
je veux pouvoir copier-coller special valeur, uniquement d'une cellule
'normale' à une autre cellule 'normale', ou d'une cellule fusionnée à une
autre cellule fusionnée (avec le meme nombre de cellules fusionnée).

Je sais que les cellules fusionnées c'est ch...t.

si c'est pas possible, c'est pas grave. ou au moins limiter le copier
coller, c'est dire si je le fais d'une cellule fusionnée vers une
non-fusionnée ou l'inverse, alors message d'erreur ....

Merci sui c'est possible simplement, sinon c'est pas grave.

YANN
MichDenis
Le #19600991
Si tu mets tout ce qui suit dans un module standard,
tu peux copier-collage spécial Valeur seulement des cellules
non fusionnées entre elles, même fusionnées si elles sont de
même dimension.


Dim Rg As Variant

Sub Modifier_Les_Raccourcis()
Application.OnKey "^v", "CollageSpecial"
Application.OnKey "^c", "copieSpecial"
End Sub
'-----------------------------------------------
Sub Les_Raccourci_Normaux()
Application.OnKey "^v"
Application.OnKey "^c"
End Sub


Sub Déprotéger()
ActiveSheet.Unprotect
DoEvents
End Sub

Sub CollageSpecial()
ActiveSheet.Unprotect
On Error Resume Next
Rg.Copy
ActiveCell.PasteSpecial xlPasteValues
ActiveSheet.Protect
'Application.Dialogs(xlDialogPasteSpecial).Show
'Ou l'autre ligne, fait le même travail.
'Application.CommandBars.FindControl(ID:u5).Execute
End Sub

Sub copieSpecial()
Set Rg = Selection
Application.CommandBars.FindControl(ID:).Execute
End Sub







"sunburn" discussion :
re,
en fait, ça ne marche pas comme je voudrais....
je veux pouvoir copier-coller special valeur, uniquement d'une cellule
'normale' à une autre cellule 'normale', ou d'une cellule fusionnée à une
autre cellule fusionnée (avec le meme nombre de cellules fusionnée).

Je sais que les cellules fusionnées c'est ch...t.

si c'est pas possible, c'est pas grave. ou au moins limiter le copier
coller, c'est dire si je le fais d'une cellule fusionnée vers une
non-fusionnée ou l'inverse, alors message d'erreur ....

Merci sui c'est possible simplement, sinon c'est pas grave.

YANN
sunburn
Le #19613391
Salut,
Ok, je te remercie, ça fonctionne, sauf pour certaines de mes cellules
fusionnées, qui sont pourtant les unes sous les autres .... mais bon, ça
vient des cellules...
merci pour le code.
YANN

"MichDenis" a écrit :

Si tu mets tout ce qui suit dans un module standard,
tu peux copier-collage spécial Valeur seulement des cellules
non fusionnées entre elles, même fusionnées si elles sont de
même dimension.


Dim Rg As Variant

Sub Modifier_Les_Raccourcis()
Application.OnKey "^v", "CollageSpecial"
Application.OnKey "^c", "copieSpecial"
End Sub
'-----------------------------------------------
Sub Les_Raccourci_Normaux()
Application.OnKey "^v"
Application.OnKey "^c"
End Sub


Sub Déprotéger()
ActiveSheet.Unprotect
DoEvents
End Sub

Sub CollageSpecial()
ActiveSheet.Unprotect
On Error Resume Next
Rg.Copy
ActiveCell.PasteSpecial xlPasteValues
ActiveSheet.Protect
'Application.Dialogs(xlDialogPasteSpecial).Show
'Ou l'autre ligne, fait le même travail.
'Application.CommandBars.FindControl(ID:u5).Execute
End Sub

Sub copieSpecial()
Set Rg = Selection
Application.CommandBars.FindControl(ID:).Execute
End Sub







"sunburn" discussion :
re,
en fait, ça ne marche pas comme je voudrais....
je veux pouvoir copier-coller special valeur, uniquement d'une cellule
'normale' à une autre cellule 'normale', ou d'une cellule fusionnée à une
autre cellule fusionnée (avec le meme nombre de cellules fusionnée).

Je sais que les cellules fusionnées c'est ch...t.

si c'est pas possible, c'est pas grave. ou au moins limiter le copier
coller, c'est dire si je le fais d'une cellule fusionnée vers une
non-fusionnée ou l'inverse, alors message d'erreur ....

Merci sui c'est possible simplement, sinon c'est pas grave.

YANN




Publicité
Poster une réponse
Anonyme