Comment forcer les coller en collage spécial valeurs ?

Le
Paatou
Bonjour,

Mon besoin est le suivant : protéger un classeur Excel de sorte à ce que
tous les collages soient fait comme "collage spécial valeurs".

L'objectif étant que diverses personnes puissent alimenter des feuilles de
saisie mais sans jamais pouvoir altérer les mises en forme ni les
protections/verrouillages présents dans le fichier Excel qu'on leur donne.
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
FFO
Le #19548711
Salut à toi

Pour protéger la structure de tes cellules il faut protéger la feuille
correspondante
Pour chaque feuille donc il faut opérer ainsi :

Outils/Protection/Protéger la feuille
Saisir un Mot de passe : "Toto" par exemple
Cocher
Sélectionner les cellules vérrouiller
Sélectionner les cellules dévérrouiller
Ok
Confirmer le Mot de passe : "Toto"

Dans le VBA de la feuille mets ceci (Alt+F11)

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
Cancel = True
ActiveSheet.Unprotect "Toto"
Target = InputBox("Veuillez saisir la valeur", "Valeur")
ActiveSheet.Protect "Toto"
End Sub

L'utilisateur devra par un simple click droit sur une cellule dans une boîte
de dialogue saisir la valeur à intégrer dans cette cellule

Pour éviter de connaître le mot de passe par consultation du code il faudra
protéger le projet ainsi :

Alt+F11
Click droit sur ThisWorkbook (Fenêtre de gauche)
Propriétés de VBAProject
Onglet Protection
Cocher Verrouiller le projet pour l'affichage
Saisir un mot de passe (Identique ou différent)
Confirmer le mot de passe
Ok

Enregistrer le classeur

A sa réouverture le code pourra être consulté moyennant ce mot de passe

Attention à ne pas oublier les mots de passe

Adaptes les parties du code :

ActiveSheet.Unprotect "Toto"
ActiveSheet.Protect "Toto"

en fonction de ton mon de passe (ici "Toto")

Fais des essais et dis moi !!!!!
FFO
Le #19548701
Salut à toi

Pour protéger la structure de tes cellules il faut protéger la feuille
correspondante
Pour chaque feuille donc il faut opérer ainsi :

Outils/Protection/Protéger la feuille
Saisir un Mot de passe : "Toto" par exemple
Cocher
Sélectionner les cellules vérrouiller
Sélectionner les cellules dévérrouiller
Ok
Confirmer le Mot de passe : "Toto"

Dans le VBA de la feuille mets ceci (Alt+F11)

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As
Boolean)
Cancel = True
ActiveSheet.Unprotect "Toto"
Target = InputBox("Veuillez saisir la valeur", "Valeur")
ActiveSheet.Protect "Toto"
End Sub

L'utilisateur devra par un simple click droit sur une cellule dans une boîte
de dialogue saisir la valeur à intégrer dans cette cellule

Pour éviter de connaître le mot de passe par consultation du code il faudra
protéger le projet ainsi :

Alt+F11
Click droit sur ThisWorkbook (Fenêtre de gauche)
Propriétés de VBAProject
Onglet Protection
Cocher Verrouiller le projet pour l'affichage
Saisir un mot de passe (Identique ou différent)
Confirmer le mot de passe
Ok

Enregistrer le classeur

A sa réouverture le code pourra être consulté moyennant ce mot de passe

Attention à ne pas oublier les mots de passe

Adaptes les parties du code :

ActiveSheet.Unprotect "Toto"
ActiveSheet.Protect "Toto"

en fonction de ton mon de passe (ici "Toto")

Fais des essais et dis moi !!!!!
MichDenis
Le #19548691
Bonjour Paatou,

Un petit exemple de ce qui est possible de faire !

http://cjoint.com/?gmnk32UiKj



"Paatou" discussion :
Bonjour,

Mon besoin est le suivant : protéger un classeur Excel de sorte à ce que
tous les collages soient fait comme "collage spécial valeurs".

L'objectif étant que diverses personnes puissent alimenter des feuilles de
saisie mais sans jamais pouvoir altérer les mises en forme ni les
protections/verrouillages présents dans le fichier Excel qu'on leur donne.
Paatou
Le #19571271
Waouu des réponses si rapidement c'est génial, ça fait plaisir, merci.

FFO, j'ai l'impression que ce que tu proposes ne réponds pas vraiment à mon
besoin.

MichDenis, j'aime beaucoup ton exemple, je préfère ta solution à une autre
que j'avais vue et qui consistait à reconfigurer toutes les manières de faire
un copier-coller pour le remplacer par un collage spécial.
Le temps m'ayant un peu manquer, je dois regarder plus précisément le code
que tu as donné.
Par contre, le cas qui me gêne le plus se produit aussi avec ta solution à
savoir : si tu ouvres un deuxième fichier Excel que tu copies dans celui-ci
une cellule verrouillée et colorée, si tu la colles dans ton fichier (sur une
cellule ni verrouillée, ni colorée ) tu obtiens la même cellule verrouillée
et colorée :-.
MichDenis
Le #19572471
| Par contre, le cas qui me gêne le plus se produit aussi avec ta solution à
| savoir : si tu ouvres un deuxième fichier Excel que tu copies dans celui-ci
| une cellule verrouillée et colorée, si tu la colles dans ton fichier (sur une
| cellule ni verrouillée, ni colorée ) tu obtiens la même cellule verrouillée
| et colorée :-.

A ) L'exemple présenté s'applique dans des fichiers différents si ces fichiers sont
ouverts dans la même instance d'Excel.
B ) J'ai refait un test sommaire sous la version Excel 2003 et Excel 2007. Si dans le
fichier exemple publié, tu fais un collage spécial (valeur seulement) ou un "Coller" ou
que tu utilises le raccourci clavier Ctrl + V, seule la valeur des contenus est copiée...
excluant les autres caractéristiques de la cellule (format, et verrouillage)
C ) Il y a le cas énoncé particulier dans l'encadré rouge énoncé dans le classeur.
J'aurais pu ajouter que
la commande "End" pour mettre fin à l'exécution d'une procédure cause le même effet que
cité.
Publicité
Poster une réponse
Anonyme