Protection liste déroulante contre coller

Bonjour,

je souhaiterai pouvoir protéger une liste déroulante faite via la validation de données afin qu'on ne puisse pas entrer une autre valeur grace à un copier-coller. Le problème, c'est que si je protège ma cellule, je ne peux plus utiliser ma liste déroulante.

J'avais pensé utiliser un code VBA pour empecher le copier-coller sur ma plage de données, mais j'ai besoin de pouvoir copier la plage sur laquelle se trouve la liste déroulante.

Je vois donc 2 possibilités, que je n'arrive pas à mettre en oeuvre :

  • Verrouiller la cellule et protéger la feuille, mais conserver la possibilité de pouvoir utiliser la liste déroulante
  • Interdire le coller dans certaines cellules de destination, sans empêcher le copier depuis ces cellules.

Quelqu'un a déjà fait face à ce problème ?

Merci d'avance,

Bonsoir,

en effet je viens de faire face à ce problème ce soir... suite à la lecture de votre post!

Ma solution :

Une surveillance événementielle sur la cellule A1 (c'est celle du fichier test joint, où se trouve la liste de choix)

Lorsque cette cellule est modifiée, le code événementielle est lancé, celui ci fait un test de validité de la valeur nouvellement inscrite

par rapport à la liste de choix de référence "la_liste".

Si la valeur copiée est en correspondance alors on quitte le code.

Si la valeur n'est pas en correspondance alors on supprime cette nouvelle valeur, puis on reconstruit la validation de la cellule afin de se retrouver à l'état initial !

Mais en écrivant ces lignes il me vient l'idée du Undo !!!!

Je reviens avec un fichier test2

@ bientôt

LouReeD


Voilà...

781test-loureed-v2.xlsm (17.42 Ko)

@ bientôt

LouReeD

Merci beaucoup LouReed,

ça répond parfaitement à mon souci !

Macro que je garde en stock car le problème se pose fréquemment.

Merci beaucoup (et le code est super clair et bien expliqué )

Mais de rien !!!!

Le forum est là pour ça !!!

@ bientôt

LouReeD

Bonsoir,

J'ai lu avec attention les échanges suite à la demande initiale.

Le code écrit par LouReed est très performant (merci beaucoup par ailleurs !) mais une question reste en suspend.

Comment faire si le Nom déclaré pour la liste déroulante se situe dans un onglet différent de celui où les listes déroulantes sont utilisées ?

Note : Actuellement, j'ai un message d'erreur qui se porte sur cette ligne "Set C = .Range("la_liste").Find(Range("A1").Value, LookIn:=xlValues, lookat:=xlWhole)" [surement car "Plage" liste déroulante <> "zone utilisation" liste déroulante]

Merci par avance de votre aide.

Salut,

je pense (sans certitude) qu'il faut veiller à ce que le nom défini pour la liste déroulante le soit sur toute l'étendue du classeur : quand tu définis ton nom Dans "Menu/Formules/Définir un nom/" pour "zone" choisir "classeur", et fais attention dans "Référence" à ce que la définition de la plage comprennes bien le nom de l'onglet où se situe ta liste.

Je ne suis pas certain que le problème vienne de la, mais dans mon fichier (pas l'exemple, mais celui dans lequel j'utilise le code fourni par LouReed) mes listes sont dans un onglet différent et ça ne me pose pas de problème, donc je me dis que ton souci vient probablement de la définition de tes noms...

Bon courage en tout cas

Merci pour ta réponse.

Malheureusement, j'ai bien veillé à déclarer comme tu l'expliques, dans le gestionnaire des noms, la plage en faisant référence à la feuille mais ca ne fonctionne pas . Si quelqu'un à une solution à cette première problématique ?

Aussi, avez vous réussi à appliquer cette macro à l'ensemble d'une colonne ?

Merci par avance.

Bonsoir,

c'est en cherchant qu'on trouve...

C'est l'adage d'un des inscrit du site !

Donc j'ai cherché et j'ai trouvé !

Ci joint :

511test-loureed-v3.xlsm (19.72 Ko)

@ bientôt

LouReeD

Bonjour LouReed,

Simplement, merci ! Ca fonctionne parfaitement et ca s'adapte facilement avec tes commentaires.

Je garde moi aussi en stock cette précieuse Macro !

J'espère que d'autres pourront profiter de ce fil de discussion.

Bonjour,

et de rien, ainsi qu'un merci pour vos merci !

@ bientôt

LouReeD

Bonjour LouReed,

Merci beaucoup pour votre aide. J'ai essayé votre code sur votre fichier, il marchait au début puis il ne marche plus.

Pourriez-vous me dire svp comment le faire marcher à nouveau ?

J'en ai besoin pour l'appliquer sur une colonne d'un tableau (au lieu d'une plage A1:27)

Merci par avance.

Bonjour,

il y a plus de trois ans avec le message d'origine !

Je vous conseille donc d'ouvrir un nouveau sujet, en postant votre fichier ou une copie représentative, ainsi tous les intervenants pourront s'ils le souhaitent se pencher sur votre question.

En effet, vous utilisez un sujet "ancien" qui plus est qui est indiqué comme résolu...

@ bientôt

LouReeD

Rechercher des sujets similaires à "protection liste deroulante contre coller"