Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

N'autoriser que « coller les valeurs »

12 réponses
Avatar
benoit
Bonjour,


Je butte et tourne en rond sur un problème de saisie de données dans un
fichier avec plusieurs onglets utilisés par plusieurs personnes.

Pour m'assurer de la validité des données saisies j'utilise la
validation du contenu par une liste apparaîssant dans un menu
contextuel. C'est impeccable sauf que l'utilisateur peut coller dans une
cellule des données absentes de la liste et l'erreur n'est pas
détectée ; cela fout le _ordel dans les synthèses.

Exemple : choix entre toto et tata, mais un utilisateur colle un "tata "
avec la jolie espace derrière. Si je compte le nombre de tata dans la
colonne, il m'en manque un. Les tableaux de synthèse sont faux et on
passe des heures pour retrouver l'erreur.

J'ai mis en place du format conditionnel qui permet de repérer pas mal
de choses (erreur dans la date, cellule vide, saisie absente de la
liste...) mais ce format disparaît aussi quand je colle une cellule
venant d'un autre tableau.

Ma question : comment je bloque ça ? Je peux interdire le collage et
autoriser uniquement la saisie dans une liste ? Je peux autoriser le
collage mais uniquement limité à la valeur et pas au format ?

J'ai essayé le verrouillage dans tous les sens, mais il doit y avoir une
solution évidente, tellement que je ne la vois pas.

D'avance merci


P.S. VBA, macro & Co interdit pour compatibilité Windows & Mac.


--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]

10 réponses

1 2
Avatar
MichD
Bonjour,

Dans le module de la feuille où l'action se déroule, dans le menu contextuel
de l'onglet de la feuille, choisis la commande "Visualiser le code" et copie
ceci dans la page blanche...

Ceci rendra impossible la copie d'une donnée dans la feuille de calcul que ce soit
par raccourci clavier ou par la commande du menu.
'----------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub
'----------------------------------------

Si tu veux que cela s'applique dans toutes les feuilles du classeur, utilise plutôt ceci
en copiant ces lignes dans le ThisWorkbook de ton classeur :

'----------------------------------------
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
End Sub
'----------------------------------------
Avatar
benoit
MichD wrote:

Bonjour,

Dans le module de la feuille où l'action se déroule, dans le menu contextuel
de l'onglet de la feuille, choisis la commande "Visualiser le code" et copie
ceci dans la page blanche...



Absent du menu contextuel sous Mac OS X.

Si tu veux que cela s'applique dans toutes les feuilles du classeur,
utilise plutôt ceci en copiant ces lignes dans le ThisWorkbook de ton
classeur :

'----------------------------------------
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range) Application.CutCopyMode = False
End Sub
'----------------------------------------



Marche pas avec la version Mac. Merci, mais je souhaite vraiment ne pas
avoir une ligne de code pour garantir des compatibilités ascendantes,
descendantes et cross-plateformes.

--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]
Avatar
JièL
Le 12/07/2015 17:11, Benoit a écrit :
...Mac OS X.



Argh... c'est tout pas pareil sous mac... et quelle version d'Excel ?

Marche pas avec la version Mac. Merci, mais je souhaite vraiment ne pas
avoir une ligne de code pour garantir des compatibilités ascendantes,
descendantes et cross-plateformes.



Est-ce que Données, Validation des données existe sous XL Mac ?

--
JièL Mac aussi, mais plutôt Donald que Hintosh
Avatar
benoit
JièL wrote:

Le 12/07/2015 17:11, Benoit a écrit :
> ...Mac OS X.

Argh... c'est tout pas pareil sous mac... et quelle version d'Excel ?

> Marche pas avec la version Mac. Merci, mais je souhaite vraiment ne pas
> avoir une ligne de code pour garantir des compatibilités ascendantes,
> descendantes et cross-plateformes.

Est-ce que Données, Validation des données existe sous XL Mac ?



Oui, et je l'utilise pour fournir une liste de données à l'utilisateur.
Liste qui apparaît dans un pop-up menu. Cela empêche de saisir une
mauvaise info, mais cela n'empêche pas de coller une donnée qui n'est
pas dans la liste.

--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]
Avatar
JièL
Le 12/07/2015 18:56, Benoit a écrit :
JièL wrote:

Le 12/07/2015 17:11, Benoit a écrit :
...Mac OS X.



Argh... c'est tout pas pareil sous mac... et quelle version d'Excel ?





Heu... le question est toujours valable : version d'Excel ?

Est-ce que Données, Validation des données existe sous XL Mac ?



Oui, et je l'utilise pour fournir une liste de données à l'utilisateur.



Ah ok, comme vous parliez de format conditionnel, je ne pensais pas que
c'était de Données, Validation

Liste qui apparaît dans un pop-up menu.



Vi, une liste déroulante en quelque sorte ;-)

Cela empêche de saisir une
mauvaise info, mais cela n'empêche pas de coller une donnée qui n'est
pas dans la liste.



OK, je n'avais jamais vérifié, mais effectivement, c'est gênant, mais je
ne vois pas comment contourner un "bug" d'excel sans macroter et quoi
qu'il en soit "Coller les valeurs" donne le même pb

Désolé, je passe la main

--
JièL passe poil
Avatar
La Norme Française c'est pas le FN
On Sun, 12 Jul 2015 14:02:45 +0200, (Benoit) wrote:

Bonjour,


Je butte et tourne en rond sur un problème de saisie de données dans un
fichier avec plusieurs onglets utilisés par plusieurs personnes.

Pour m'assurer de la validité des données saisies j'utilise la
validation du contenu par une liste apparaîssant dans un menu
contextuel. C'est impeccable sauf que l'utilisateur peut coller dans une
cellule des données absentes de la liste et l'erreur n'est pas
détectée ; cela fout le _ordel dans les synthèses.

Exemple : choix entre toto et tata, mais un utilisateur colle un "tata "
avec la jolie espace derrière. Si je compte le nombre de tata dans la
colonne, il m'en manque un. Les tableaux de synthèse sont faux et on
passe des heures pour retrouver l'erreur.

J'ai mis en place du format conditionnel qui permet de repérer pas mal
de choses (erreur dans la date, cellule vide, saisie absente de la
liste...) mais ce format disparaît aussi quand je colle une cellule
venant d'un autre tableau.

Ma question : comment je bloque ça ? Je peux interdire le collage et
autoriser uniquement la saisie dans une liste ? Je peux autoriser le
collage mais uniquement limité à la valeur et pas au format ?

J'ai essayé le verrouillage dans tous les sens, mais il doit y avoir une
solution évidente, tellement que je ne la vois pas.




Il me semble de le format de cellule ne change pas en collant
contrairement à la MFC
On peut peut être jouer sur des couleurs si valeurs pas dans la liste.
Je doute que se soit dynamique en fonction d'une liste, mais s'il n'y
en a pas beaucoup tu peux peut être les mettres dedant.


D'avance merci


P.S. VBA, macro & Co interdit pour compatibilité Windows & Mac.



Tester si windows 32/64 ou Mac :
http://www.rondebruin.nl/mac/mac001.htm




--
« le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun)
C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
Avatar
benoit
JièL wrote:

Le 12/07/2015 18:56, Benoit a écrit :
> JièL wrote:
>
>> Le 12/07/2015 17:11, Benoit a écrit :
>>> ...Mac OS X.
>>
>> Argh... c'est tout pas pareil sous mac... et quelle version d'Excel ?

Heu... le question est toujours valable : version d'Excel ?

>> Est-ce que Données, Validation des données existe sous XL Mac ?
>
> Oui, et je l'utilise pour fournir une liste de données à l'utilisateur.

Ah ok, comme vous parliez de format conditionnel, je ne pensais pas que
c'était de Données, Validation



C'est à dire que j'utilise le format conditionnel pour metter en avant
les zones non-saisies ou avec des données non valides.


> Liste qui apparaît dans un pop-up menu.

Vi, une liste déroulante en quelque sorte ;-)



Chaque plateforme son language ;)

> Cela empêche de saisir une
> mauvaise info, mais cela n'empêche pas de coller une donnée qui n'est
> pas dans la liste.

OK, je n'avais jamais vérifié, mais effectivement, c'est gênant, mais je
ne vois pas comment contourner un "bug" d'excel sans macroter et quoi
qu'il en soit "Coller les valeurs" donne le même pb



Pas tout à fait car je veux bien laisser passer un « Coller les
valeurs » parce que derrière j'ai mon format conditionnel qui va valider
ou non la valeur. Si on colle tout alors le format conditionnel saute
pour cette cellule puisqu'on colle aussi un nouveau format.

Désolé, je passe la main



Pour l'instant je ne vois qu'une solution « élégante » :

- Faire une petite colonne entre chaque colonne de données et lui donner
une petite largeur ;
- Mettre la forme conditionnelle sur cette colonne, ou, plus simplement,
afficher un « X » gras, majucule, rouge corps 20 sur fond jaune si la
donnée présente dans la cellule d'à côté n'est pas correcte.
- Encadrer les deux cellules pour donner l'impression visuelle qu'il n'y
en a qu'une seule.

Exemple dans une colonne de Oui/Non :

-------------
| Oui |
-------------
| Non |
-------------
| X abc |
-------------
| Oui |
-------------
| X |
-------------

Ce n'est pas très élégant. Par contre, je peux complètement verrouiller
les colonnes de validation-bis.

Maintenant verrouiller une cellule sauf via liste déroulante serait
mieux, ou interdire de coller s'il y a une liste.

--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]
Avatar
benoit
La Norme Française c'est pas le FN wrote:

Il me semble de le format de cellule ne change pas en collant
contrairement à la MFC
On peut peut être jouer sur des couleurs si valeurs pas dans la liste.
Je doute que se soit dynamique en fonction d'une liste, mais s'il n'y
en a pas beaucoup tu peux peut être les mettres dedant.



Malheureusement si. La zone possédant le format conditionnel est
modifiée.

Tu n'as qu'à appliquer un format conditionnel à une colonne entière (E),
copier une cellule d'une autre colonne et la coller dedans (sur E11 par
ex.). Maintenant regarde sur quoi est appliqué ton format conditionnel.

Ton « Feuil1!$E:$E »
est devenu
« Feuil1!$E1:$E10;Feuil1!$E12:$E1048576 »
bref toute la colonne sauf E11.

--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]
Avatar
La Norme Française c'est pas le FN
On Mon, 13 Jul 2015 00:42:50 +0200, (Benoit) wrote:

La Norme Française c'est pas le FN wrote:

Il me semble de le format de cellule ne change pas en collant
contrairement à la MFC
On peut peut être jouer sur des couleurs si valeurs pas dans la liste.
Je doute que se soit dynamique en fonction d'une liste, mais s'il n'y
en a pas beaucoup tu peux peut être les mettres dedant.



Malheureusement si. La zone possédant le format conditionnel est
modifiée.

Tu n'as qu'à appliquer un format conditionnel à une colonne entière (E),
copier une cellule d'une autre colonne et la coller dedans (sur E11 par
ex.). Maintenant regarde sur quoi est appliqué ton format conditionnel.

Ton « Feuil1!$E:$E »
est devenu
« Feuil1!$E1:$E10;Feuil1!$E12:$E1048576 »
bref toute la colonne sauf E11.



Une fonction dans une cellule à côté de chaque case ou sur un autre
onglet caché qui scrute les cellules à la recherche de texte qui ne
sont pas dans la liste ? ou une matrice qui compte les erreur et
affiche le résultat dans une seule cellule.

Mais, amha, faire une macro sera plus simple à condition de tester la
plateforme win/mac.



--
« le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun)
C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme
Avatar
benoit
La Norme Française c'est pas le FN wrote:

Une fonction dans une cellule à côté de chaque case ou sur un autre
onglet caché qui scrute les cellules à la recherche de texte qui ne
sont pas dans la liste ? ou une matrice qui compte les erreur et
affiche le résultat dans une seule cellule.



C'est un peu ce que je proposais en utilisant une colonne verrouillée
dans laquelle se trouve le format conditionnel basé sur le contenu de la
colonne d'à côté. Bref A1 est rouge si B1 est faux.

Mais, amha, faire une macro sera plus simple à condition de tester la
plateforme win/mac.



MichD a passé un bout de code qui doit certainement fonctionné sous
Windows, pas sur mon Mac.

'----------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.CutCopyMode = False
End Sub
'----------------------------------------

--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]
1 2