[Calc] Stop copier/coller

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

[Calc] Stop copier/coller

Messagepar f2m » 01 Jan 2012 19:33

Bonjour à tous je suis nouveau sur le forum!

Ayant des tableaux sur calc avec des fonctions...protégés mais devant être néanmoins remplis par différents utilisateurs j'ai un soucis.

En effet, pour certaines colonnes j'ai pu créer des listes avec des valeurs à saisir... mais certaines (des noms et chiffres) sont impossibles à déterminer à l'avance.

Comme pour certaines colonnes un formatage conditionnel est en place, ce qui est embêtant quand les utilisateurs adeptes du copier / coller saccagent tout, je voudrais savoir si quelqu'un connait une macro empêchant de copier / coller.

Je vous remercie par avances pour vos réponses. :super:
Dernière édition par micmac le 01 Jan 2012 19:37, édité 2 fois.
Raison: Titre ("macro" inutile car implicite
OpenOffice 3.3 sous W7
f2m
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 01 Jan 2012 19:23

Re: [Calc] Stop copier/coller

Messagepar Dude » 02 Jan 2012 11:22

Salut,

Pourquoi ne pas protéger le contenu des cellules tout simplement ?
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 17373
Inscrit le : 03 Mars 2006 09:45
Localisation : 127.0.0.1

Re: [Calc] Stop copier/coller

Messagepar Churay » 02 Jan 2012 11:49

Bonjour,

J'ai peut-être zappé quelque chose, mais avec des cellules protégées :
- soit, on ne peut plus saisir
- soit, on déverrouille le temps de la saisie et la porte est de nouveau ouverte aux saccages

Je vois deux approches pour contourner :

    1 protéger les cellules et gérer les saisies par macro

    2 ne rien protéger et un Listerner Evènements de la feuille - Contenu modifié
      2.1 seule la valeur a été modifiée, on ne fait rien
      2.2 le formatage conditionel a été modifié, on rétablit l'ancien (ce qui impose d'avoir une table des formatages et vérifier comment se passe le retour à l'ancien : le listener devrait se réactiver, mais la deuxième comparaison devrait ramener au 2.1)

      ou sans tester, on rétablit systématiquement le formatage associé à la cellule sur toute modif.

      Un peu [beaucoup] usine à gaz, mais c'est l'occasion de tester comment on peut arrêter temporairement ce type de listener., le réactiver et le tout, de manière simple...

:lol:
cOOordialement
---
AOO 4.0.1 & LO 4.2.7.2 XP-SP3 / Debian 7.8 & Ubuntu 14.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
Churay
HédOOniste
HédOOniste
 
Message(s) : 2321
Inscrit le : 30 Avr 2009 06:54
Localisation : PACA

Re: [Calc] Stop copier/coller

Messagepar f2m » 02 Jan 2012 19:07

Merci pour vos réponses.

La protection des cellules ne permet pas de les remplir. C'est bien là le problème, c'est un tableau qui doit-être rempli!


Les saisies par macro euh comment dire. Ce sont des personnes qui ne savent même pas que les macro existent qui vont devoir également saisir des valeurs et textes.

Ne rien protéger : mouai le problème c'est qu'il y a des calculs (fonctions sommeprod et mois...) et que si je ne protège pas elles risquent de pas calculer grand chose après leur modifications.

Dans un fil sur ce site-même, j'avais lu le blocage du copier/coller était possible par macro. J'ai trouvé plus ou moins pour excel mais pour calc que j'utilise et avec lequel j'ai conçu tous les tableaux à remplir... non!

J'ai regardé quelques sites de programmation de macro, le hic c'est qu'aucun ne parle d'empêcher le copier ou le coller ou les deux ou autre... :(
OpenOffice 3.3 sous W7
f2m
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 01 Jan 2012 19:23

Re: [Calc] Stop copier/coller

Messagepar Dude » 02 Jan 2012 19:32

f2m a écrit:La protection des cellules ne permet pas de les remplir. C'est bien là le problème, c'est un tableau qui doit-être rempli!

J'avais compris, je parlais de protéger les cellules ayant des formules.
En l'absence d'un classeur permettant de voir de visu la problématique, on ne peut que spéculer.

Une autre solution serait de créer un formulaire sur une feuille pour la saisie des informations.
Cela permet également de contrôler en amont ce qui va être enregistré.

f2m a écrit:Dans un fil sur ce site-même, j'avais lu le blocage du copier/coller était possible par macro.

Pourquoi ne pas donner l'URL de ce fameux fil ?

f2m a écrit:J'ai trouvé plus ou moins pour excel

C'est à dire ?

Bloquer une fonction aussi basique qui est accessible à la fois par un menu, des boutons et des raccourcis clavier me semble hasardeux.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 17373
Inscrit le : 03 Mars 2006 09:45
Localisation : 127.0.0.1

Re: [Calc] Stop copier/coller

Messagepar f2m » 02 Jan 2012 19:56

Pour le "fil" http://user.services.openoffice.org/fr/forum/viewtopic.php?f=8&t=18590&p=102004&hilit=emp%C3%AAcher+coller#p102004.


Pour le tableau j'évite car le tableau est pour mon travail est contient des données confidentiels qui n'ont rien à faire sur un forum!

Pour excel http://excel.developpez.com/faq/?page=PressePapier#EmpecherCollage *

Merci pour votre aide en tout cas, ça fait un moment que je cherche sans l'ombre d'une solution! Pourtant cela ne doit pas être si compliqué!
Dernière édition par f2m le 02 Jan 2012 20:04, édité 1 fois.
OpenOffice 3.3 sous W7
f2m
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 01 Jan 2012 19:23

Re: [Calc] Stop copier/coller

Messagepar Bidouille » 02 Jan 2012 20:00

Bonsoir,

f2m a écrit:Pour le tableau j'évite car le tableau est pour mon travail est contient des données confidentiels qui n'ont rien à faire sur un forum!

Ce n'est bien sûr pas une raison valable.
Il vous appartient de réaliser un exemple avec des données anonymisées afin d'expliquer au mieux votre problématique.
C'est à vous de faire cet effort pour aider les bénévoles qui vous répondent.

Cordialement
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 8354
Inscrit le : 08 Nov 2005 18:23
Localisation : Saumur, France

Re: [Calc] Stop copier/coller

Messagepar f2m » 02 Jan 2012 20:19

Les données ne peuvent-être anonymisées étant donnée que c'est grâce à ces données "noms" entre autres que les calculs sont effectuées!

Indiquer que la réponse "n'est bien sûr pas valable" n'a pas grand intérêt pour la discussion!

En effet, mettre un tableau vide ne fera pas avancer le problème !

J'ai plus ou moins clairement expliqué le problème!

Empêcher le copier / coller par macro qui met à mal mon formatage conditionnel !

Plus un lien qui pointe vers la solution sur excel pour ceux que cela intéresse.
OpenOffice 3.3 sous W7
f2m
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 01 Jan 2012 19:23

Re: [Calc] Stop copier/coller

Messagepar Churay » 02 Jan 2012 23:10

Bonsoir,

f2m a écrit:Les données ne peuvent-être anonymisées étant donnée que c'est grâce à ces données "noms" entre autres que les calculs sont effectuées!

Bah que les calculs finaux soient justes ou pas on s'en fout un peu, puisque l'idée c'est de protéger le formatage.
Dude a écrit:En l'absence d'un classeur permettant de voir de visu la problématique, on ne peut que spéculer.

+1

Indiquer que la réponse "n'est bien sûr pas valable" n'a pas grand intérêt pour la discussion!

Pour ceux qui vont se pencher sur la solution, cela en a... : ne serait-ce que parce qu'ils n'ont peut-être pas le temps d'inventer un truc qui n'aura vraisemblablement rien à voir avec la réalité...

En effet, mettre un tableau vide ne fera pas avancer le problème !

C'est ce que je dis différemment au-dessus : on sait le créer nous aussi, mais on n'est pas plus avancés...

J'ai plus ou moins clairement expliqué le problème!
Empêcher le copier / coller par macro qui met à mal mon formatage conditionnel !

J'ai plus ou moins répondu. Et on peut même ne garder que l'option 2 :
2 ne rien protéger et un Listerner Evènements de la feuille - Contenu modifié

2.1 seule la valeur a été modifiée, on ne fait rien
2.2 le formatage conditionel a été modifié, on rétablit l'ancien (ce qui impose d'avoir une table des formatages et vérifier comment se passe le retour à l'ancien : le listener devrait se réactiver, mais la deuxième comparaison devrait ramener au 2.1)

ou sans tester, on rétablit systématiquement le formatage associé à la cellule sur toute modif.

Et je persiste :
Un peu [beaucoup] usine à gaz, mais c'est l'occasion de tester comment on peut arrêter temporairement ce type de listener., le réactiver et le tout, de manière simple...


Et pour répondre à une de tes précisions précédentes :
Les saisies par macro euh comment dire. Ce sont des personnes qui ne savent même pas que les macro existent qui vont devoir également saisir des valeurs et textes.
Pour eux ça ne change rien, il saisiront... et la macro fera discrètement (ou presque) ce qu'elle a à faire...
Et pour mémoire :
f2m a écrit:je voudrais savoir si quelqu'un connait une macro


Et Dude a proposé une autre voie, nettement plus pertinente et moins usine à gaz (j'aime bien les usines à gaz...) :
Une autre solution serait de créer un formulaire sur une feuille pour la saisie des informations.
Cela permet également de contrôler en amont ce qui va être enregistré.
cOOordialement
---
AOO 4.0.1 & LO 4.2.7.2 XP-SP3 / Debian 7.8 & Ubuntu 14.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
Churay
HédOOniste
HédOOniste
 
Message(s) : 2321
Inscrit le : 30 Avr 2009 06:54
Localisation : PACA

Re: [Calc] Stop copier/coller

Messagepar Jeff » 03 Jan 2012 08:50

Bonjour à tous,

Ce fil m'a tout l'air de tourner en rond :mrgreen:

Comme signalé ci-dessus, on peut tout à fait sélectionner des (plages ou bien des) cellules, et enlever la protection de celles-ci avant de protéger la feuille :arrow: seules ces cellules seront accessibles à l'utilisateur final.

Un exemple en section tableur qui illustre cela :
viewtopic.php?f=4&t=19273&hilit=menu+outils+prot*+cellule*

Un fichier joint facilite les réponses, puisque dans le cas d'une solution orientée macro, il faut bien que les bénévoles qui prennent sur leur temps pour te répondre sachent sur quelle plage de cellule la macro doit être active...

A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.1 sur Xubuntu 14.04 et Win7proSP1 64
Avatar de l’utilisateur
Jeff
GourOOu
GourOOu
 
Message(s) : 5896
Inscrit le : 18 Sep 2006 11:40
Localisation : Hautes-Alpes, France

Re: [Calc] Stop copier/coller

Messagepar f2m » 03 Jan 2012 19:41

Comme signalé ci-dessus, on peut tout à fait sélectionner des (plages ou bien des) cellules, et enlever la protection de celles-ci avant de protéger la feuille seules ces cellules seront accessibles à l'utilisateur final.


Nan mais ça je le sais déjà c'est d'ailleurs ce qui pose problème! Par exemple quand le dossier est "en cours" le formatage conditionnel de la cellule fait que la cellule vire au rouge, si pas le mot en cours > fond blanc!

Quand quelqu'un fait un copier/coller il me flingue ce formatage conditionnel :roll:

Pour ton lien cache les cellules / masquer les formules c'est déjà fait tout ça!

Pour ceux qui vont se pencher sur la solution, cela en a... : ne serait-ce que parce qu'ils n'ont peut-être pas le temps d'inventer un truc qui n'aura vraisemblablement rien à voir avec la réalité...


Ce n'est pas des cellules qu'ils faut protéger c'est toute la feuille (les feuilles), mais en permettant de pouvoir écrire dedans!

Il y a en tout 40 feuilles dont 10 qui incrémentent automatiquement les autres. Le but est de protéger celles que l'on remplit et qui incrémente. Chaque feuille comporte 12 colonnes et 1500 lignes de saisies.

Pour eux ça ne change rien, il saisiront... et la macro fera discrètement (ou presque) ce qu'elle a à faire...


C'est ce que je cherche justement!

Comment tu procèdes avec ta méthode de listener ??

Une autre solution serait de créer un formulaire sur une feuille pour la saisie des informations.
Cela permet également de contrôler en amont ce qui va être enregistré.
Idem comment fait-on ?

Un exemple simple suffit d'après ce que j'ai pu décrire j'essayerai de l'adapter à mes tableaux. Je sais bien que vous aimez bien les visuels mais c'est sur les données (confidentiel) que l'on rentre qu'il y a le formatage conditionnel. De plus poster 10 feuilles différentes ça fait beaucoup et encore ce n'est que pour l'instant!

En tout cas merci pour vos propositions.

Par contre l'idée de la macro qui bloque le copier / coller ou qui empêche le coller cela ne vous inspire rien avec les liens que je vous ai mis ?? Certes c'est excel mais "open office " est mieux nan :lol:
OpenOffice 3.3 sous W7
f2m
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 01 Jan 2012 19:23

Re: [Calc] Stop copier/coller

Messagepar Churay » 03 Jan 2012 21:40

f2m a écrit:Ce n'est pas des cellules qu'ils faut protéger c'est toute la feuille (les feuilles), mais en permettant de pouvoir écrire dedans!

Comme cela vient après une citation d'un passage de mes réponses, j'en déduis logiquement que ça s'adresse à moi.
Relis : il me semble que mes réponses laissent entendre que j'ai assimilé ce point.

Il y a en tout 40 feuilles dont 10 qui incrémentent automatiquement les autres. Le but est de protéger celles que l'on remplit et qui incrémente. Chaque feuille comporte 12 colonnes et 1500 lignes de saisies.

On le devine comment avec un fichier inexistant ?

Comment tu procèdes avec ta méthode de listener ??

Je garde le listener, je modifie légèrement l'approche au vue d'une précision venue au bout de 48h :
Par exemple quand le dossier est "en cours" le formatage conditionnel de la cellule fait que la cellule vire au rouge, si pas le mot en cours > fond blanc!
Concernant le formatage conditionnel, c'est la seule info : j'en conclus (vraisemblablement hâtivement) que c'est le seul formatage conditionel. Partant de là, sur un évènement Modification de cellule, dans une plage précise (ou un ensemble de plages précises), si le contenu de la cellule contient "en cours" (ou est strictement égal à, en fonction de la réalité du truc), la macro associée met le fond en rouge, sinon en blanc.
C'est court simple et efficace et exit le formatage conditionnel. Quoi qu'il se passe : saisie ou copie sauvage, le résultat sera identique. Il suffit de tester si la cellule modifiée est dans une plage donnée, si "En cours" est le contenu (ou dans le contenu) de la cellule et associer la macro à l'évènement précité.

Je sais bien que vous aimez bien les visuels mais c'est sur les données (confidentiel) que l'on rentre qu'il y a le formatage conditionnel. De plus poster 10 feuilles différentes ça fait beaucoup et encore ce n'est que pour l'instant!

On n'aime pas les visuels : on demande des fichiers pour gagner du temps, tester la solution sur le cas précis
Le confidentiel peut être rendu anonyme et on n'a pas besoin de 1500 lignes : 5 à 10 qui présentent le cas une fois ou deux, ça le fait.
Idem pour le nombre de feuille si c'est le même mécanisme à mettre en oeuvre : une suffit.
Et d'une manière générale, on préfère éviter d'avoir recours à la boule de cristal.

Par contre l'idée de la macro qui bloque le copier / coller ou qui empêche le coller cela ne vous inspire rien avec les liens que je vous ai mis ?? Certes c'est excel mais "open office " est mieux nan :lol:

La provoc ne m'incline pas à chercher s'il existe une méthode équivalente à CutCopyMode ou comment l'émuler.
Je te conseille donc de faire la connaissance de XRay.

 Ajout : J'ai posté ici un code qui clone une saisie, avec utilisation du listener précité.
Tu y trouveras l'exemple souhaité pour récupérer la cellule modifiée (oEvt.AbsoluteName), après quoi il suffira de modifier la propriété CellBackColor de la cellule. 
cOOordialement
---
AOO 4.0.1 & LO 4.2.7.2 XP-SP3 / Debian 7.8 & Ubuntu 14.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
Churay
HédOOniste
HédOOniste
 
Message(s) : 2321
Inscrit le : 30 Avr 2009 06:54
Localisation : PACA

Re: [Calc] Stop copier/coller

Messagepar Patous_74 » 04 Jan 2012 16:45

Bonjour,

Pour le copier coller, si le fichier est vraiment spécifique, n'y a-t'il pas moyen de simplement le supprimer du menu édition et supprimer les raccourcis clavier ctrl C et V ?
LibreOffice 3.5 sous windows XP SP3
Avatar de l’utilisateur
Patous_74
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 69
Inscrit le : 14 Oct 2008 15:16
Localisation : Lille

Re: [Calc] Stop copier/coller

Messagepar jjk » 04 Jan 2012 17:30

Bonjour

A la fin de ce sujet il y a peut-être une piste à creuser.
OpenOffice 3.1.1 sous XP-SP2 et LibreOffice 3.5.0 sous Win 7
jjk
HédOOniste
HédOOniste
 
Message(s) : 1696
Inscrit le : 27 Oct 2008 16:30

Re: [Calc] Stop copier/coller

Messagepar Churay » 04 Jan 2012 18:56

Bonjour,

jjk a écrit:A la fin de ce sujet il y a peut-être une piste à creuser.

Joli... ! lien sympathique

Cela dit, on attaque par cette voie les usines à gaz high tech, avec néanmoins une limite :
This code can disable commands for only menus and shortcut keys not for context menus.

Comme le faisait encore remarquer spYre dans un post ultra-récent, sur un sujet différent certes, mais de philosophie identique : interdire a ses limites, dans la mesure où un malin trouvera un contournement.
Ici le contournement est simple : accessible via le menu contextuel...
De plus, limiter une appli par essence ouverte... :?:

Bien sûr, on pourra vraisemblablement verrouiller cette voie, en en rajoutant une couche, (You also need to use ContexMenuInterceptor to disable commands for context menus.) ou en s'inspirant du PYS_Inside sur les menus contextuels, par exemple, ou encore, en allant bidouiller la config, mais cela devient de la haute-voltige, dont il faudra être certain de la stabilité.
Au vu de certains comportements sur les 3.3.x et 3.4.x quand un listener est ajouté et actif, je préfère (et de loin) m'appuyer sur les développements de la Team DEV et utiliser ce qu'elle a intégré. (Ce qui, entre autres, réduit la taille du schmilblick et donc sa complexité).

Cela dit merci jjk :wink:
Si tu as d'autres liens comme celui-là, je suis preneur... :marto:
cOOordialement
---
AOO 4.0.1 & LO 4.2.7.2 XP-SP3 / Debian 7.8 & Ubuntu 14.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
Churay
HédOOniste
HédOOniste
 
Message(s) : 2321
Inscrit le : 30 Avr 2009 06:54
Localisation : PACA

Re: [Calc] Stop copier/coller

Messagepar Jeff » 04 Jan 2012 19:19

Il va falloir que les "utilisateurs adeptes du copier / coller [qui] saccagent tout" deviennent adeptes du copier/collage spécial sans le format :mrgreen:
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.1 sur Xubuntu 14.04 et Win7proSP1 64
Avatar de l’utilisateur
Jeff
GourOOu
GourOOu
 
Message(s) : 5896
Inscrit le : 18 Sep 2006 11:40
Localisation : Hautes-Alpes, France

Re: [Calc] Stop copier/coller

Messagepar f2m » 04 Jan 2012 22:06

Il va falloir que les "utilisateurs adeptes du copier / coller [qui] saccagent tout" deviennent adeptes du copier/collage spécial sans le format


Mouai je vais avoir du mal avec eux! Le collage pour eux se résume à appuyer sur le bouton copier puis coller (l'icône pour être plus précis). Le clic droit ils ne connaissent!

A la fin de ce sujet il y a peut-être une piste à creuser.


Merci bien.

Je garde le listener, je modifie légèrement l'approche au vue d'une précision venue au bout de 48h :
Par exemple quand le dossier est "en cours" le formatage conditionnel de la cellule fait que la cellule vire au rouge, si pas le mot en cours > fond blanc!
Concernant le formatage conditionnel, c'est la seule info : j'en conclus (vraisemblablement hâtivement) que c'est le seul formatage conditionel. Partant de là, sur un évènement Modification de cellule, dans une plage précise (ou un ensemble de plages précises), si le contenu de la cellule contient "en cours" (ou est strictement égal à, en fonction de la réalité du truc), la macro associée met le fond en rouge, sinon en blanc.
C'est court simple et efficace et exit le formatage conditionnel. Quoi qu'il se passe : saisie ou copie sauvage, le résultat sera identique. Il suffit de tester si la cellule modifiée est dans une plage donnée, si "En cours" est le contenu (ou dans le contenu) de la cellule et associer la macro à l'évènement précité.


Tu serais écrire la macro! J'essayerai de la développer tout seul pour l'adapter à mes tableaux. je viens de voir le edit!

La provoc ne m'incline pas à chercher s'il existe une méthode équivalente à CutCopyMode ou comment l'émuler.
Je te conseille donc de faire la connaissance de XRay.


De l'ironie ça te dit quelques chose ? Pour moi calc et excel se sont deux équivalent avec chacun des inconvénients et avantages! Cependant, la préférence va à open office qui est équivalent mais gratuit lui, ce qui est plus qu'impressionnant!

Merci pour le code ;)
OpenOffice 3.3 sous W7
f2m
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 01 Jan 2012 19:23

Re: [Calc] Stop copier/coller

Messagepar spYre » 05 Jan 2012 00:27

Bonjour f2m,

Une solution possible, qui avait été proposée ici : viewtopic.php?p=136377#p136377.
Inconvénient : il faut que le document soit ouvert depuis un répertoire qui autorise les macros.
Je joins un exemple qui désactive la fonction "Coller". Elle reste accessible via le raccourci Ctrl+V, mais ne modifie pas le formatage.
Cordialement.
Pièces jointes
test f2m.ods
(11.03 Kio) Téléchargé 79 fois
LibreOffice 3.3.4 + Report Builder
Windows 7 / Windows XP sp3
Ubuntu 11.10 / LMDE
Avatar de l’utilisateur
spYre
InconditiOOnnel
InconditiOOnnel
 
Message(s) : 888
Inscrit le : 29 Oct 2008 21:02
Localisation : Liège, Belgique

Re: [Calc] Stop copier/coller

Messagepar Dude » 05 Jan 2012 10:44

Churay a écrit:La provoc ne m'incline pas à chercher s'il existe une méthode équivalente à CutCopyMode ou comment l'émuler.

Cette fonction a été implémentée par l'équipe de dév. (rapport 108867) pour la compatibilité VBA avec l'API.
La rustine a été créée mais n'a pas été pour le moment intégrée.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 17373
Inscrit le : 03 Mars 2006 09:45
Localisation : 127.0.0.1

Re: [Calc] Stop copier/coller

Messagepar Churay » 05 Jan 2012 19:33

Bonsoir,

En attendant :

Code : Tout sélectionner   AgrandirRéduire
Option Explicit
'
' Code fourni par le forum francophone OOo/LO
' http://user.services.openoffice.org/fr/forum/viewtopic.php?f=8&t=31653
'
' Ce code est placé sous licence GNU GPL
'
'
' Testé sous LO 3.4.3
'
Sub maj( oEvt )
Dim oRange As Object, oRangeWrk As Object, oRanges(2) ' pour 3 feuilles
Dim oCell As Object
   '                      ╓─── Index Feuille
   '                  ║ ╓─── StartColum de la PLage à surveiller
   '                  ║ ║ ╓─── StartRow de la PLage à surveiller
   '                  ║ ║ ║ ╓─── EndColum de la PLage à surveiller
   '                  ║ ║ ║ ║ ╓─── EndRow de la PLage à surveiller
   '                  ║ ║ ║ ║ ║
   oRanges = ARRAY( ARRAY(0,0,4,0,24), ARRAY(1,2,4,2,14), ARRAY(2,1,4,1,11) )
   '                <---Feuille1---->   <---Feuille2---->  <---Feuille3---->
   oRange = oEvt.RangeAddress
   oRangeWrk = oRanges(oRange.Sheet)
   IF oRange.StartColumn >= oRangeWrk(1) AND _
      oRange.StartRow >= oRangeWrk(2) AND _
      oRange.EndColumn <= oRangeWrk(3) AND _
      oRange.EndRow <= oRangeWrk(4) Then
      oCell = thisComponent.Sheets(oRange.Sheet).getCellRangeByName(oEvt.AbsoluteName)
      IF InStr(1,oCell.String,"En cours",1) Then
         oCell.CellBackColor = RGB(255,0,0)
      Else
         oCell.CellBackColor = RGB(255,255,255) ' Fond Blanc = pertes des Bordures
'         oCell.CellBackColor = -1 ' Fond par défaut = "blanc" avec Bordures conservées
      End If
   End if
End Sub

Le repérage des index présente mieux dans le code du fichier joint que sur le forum ;)

Dans le fichier joint, je surveille la plage A5:A25 de Feuille1, C5:C15 de Feuille2, B5:B12 de Feuille3.
Si on saisie (ou copie) en dehors de ces plages rien ne se passe
Si on saisie (ou copie) à l'intérieur d'une de ces plages, si la chaine de caractères "En cours" est présente dans la cellule, le fond sera rouge, sinon le fond sera blanc (attention à la notion de fond blanc (voir commentaire dans le code)

La casse n'est pas prise en compte (eN CoURs) donera un fond rouge.

Mais attention : "En courses" ou "Ref 27-EN COURS2-27v2" donnera aussi un fond rouge. Si cela pose problème, il suffit d'analyser un peu mieux quand la chaîne est trouvée. Un copier coller peut faire perdre les bordures (peut se gérer aussi)

Le plus long (pénible) sera de définir les zones pour 15 feuilles et plus... Et bien sûr, activer la macro sur chaque feuille...

Le code est light, reste lisible, se déclenche sur un listener de base, qu'on se contente d'activer sur n feuilles.

En feuille 1, deux cellules à copier dans une plage surveillée pour vérifier ;)
Pièces jointes
NoCCnoCV.ods
(12.78 Kio) Téléchargé 71 fois
cOOordialement
---
AOO 4.0.1 & LO 4.2.7.2 XP-SP3 / Debian 7.8 & Ubuntu 14.04 LTS
---
F1 : ça aide...
XRay + SDK :super:
---
Quand le NOT CONFIRMED sera corrigé (OOo et LO) , je serai heureux...
Avatar de l’utilisateur
Churay
HédOOniste
HédOOniste
 
Message(s) : 2321
Inscrit le : 30 Avr 2009 06:54
Localisation : PACA

Re: [Calc] Stop copier/coller

Messagepar f2m » 05 Jan 2012 20:36

Merci beaucoup pour tes ces miens à chacun d'entre vous!

C'est super sympa vraiment merci!

Je testerai ce week-end et je vous ferais un récapitulatif!

Sinon, n'étant pas dans un forum ou mes connaissances permettent d'aider les autres, je vous invite en cas de problème (hardaware ou software) à poster ici http://forum.canardpc.com/forums/32-Hardware-Software si je peux je vous renverrai l'ascenseur! Promis :wink: (mon pseudo est rocca!)

Merci à tous, je mettrai résolu si les solutions proposées règle mon problème ;)
OpenOffice 3.3 sous W7
f2m
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 01 Jan 2012 19:23


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 9 invité(s)