[Résolu] Recopie partielle d'une liste d'une feuille

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Avatar de l’utilisateur
Pyanepsion
Membre hOOnoraire
Membre hOOnoraire
Messages : 191
Inscription : 11 mars 2006 07:53

[Résolu] Recopie partielle d'une liste d'une feuille

Message par Pyanepsion »

Bonjour à tous.

J'ai une feuille Base sur laquelle j'ai une liste de valeurs en 2 colonnes. Je voudrais les extraire automatiquement au fur et à mesure de la saisie sur la feuille base pour que n'apparaisse sur une autre feuille Résultat que certains éléments de la liste :

Exemple si le filtrage doit se faire sur Patricia (voir le surlignage vert) :
Image

Comment faire sans macro?

Merci à tous.
Window XP. Excel 2000. Works suite 2003. Open Office. Java Sun. Maxthon. Le tout mis à jour sur les nouvelles versions françaises dès qu'elles sont disponibles.
Brice.h
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 28 mars 2006 07:56
Localisation : La Rochelle

Message par Brice.h »

je ne pense pas que ce soit possible sans macro :?
OpenOffice.org 2.0.2
Windows XP
jumbo444
InconditiOOnnel
InconditiOOnnel
Messages : 769
Inscription : 10 mars 2006 12:09
Localisation : Rouen, France

Message par jumbo444 »

Je ne sais pas le faire au fur et à mesure de la saisie. Mais quand ta saisie est terminée tu peux appliquer un filtre spécial.
- créer une zone de critère, par exemple dans les colonnes à droite (mais en fait ça peut être n'importe où) en répétant les mêmes entêtes de colonne, et en indiquant dans les lignes en dessous les critère de sélection. Dans ton cas, tu mets Patricia dans la colonne des noms de la zone critère.
- sélectionner la zone de données et dans menu Données => Filtre => Filtre spécial
- indiquer la zone de critère
- en ouvrant d'avantage la boite avec le bouton Options, cocher Copier le résultat vers, et dans la zone indiquer la case A1 de la feuille2 par exemple
- OK et c'est fait!
http://oooforum.free.fr/cijoint/fichier ... 075015.ods
LibO 5.4.6.2 sous Ubuntu 16.04
Avatar de l’utilisateur
Pyanepsion
Membre hOOnoraire
Membre hOOnoraire
Messages : 191
Inscription : 11 mars 2006 07:53

Message par Pyanepsion »

C'est un très bon procédé Jumbo444. :)

Il ne convient pas à mon cas particulier mais peut rendre service à beaucoup de monde.

Il faut réellement que je puisse avoir une recopie automatique de la feuille données vers la feuille résultat car il y a en réalité une zone de calcul pour chaque critère et qu'il y a chaque jour trop de nouvelles données à ajouter pour pouvoir se permettre de devoir refaire les manipulations de filtrage lors de chaque saisie.

Je ne veux pas utiliser les macros et je sais que c'est possible puisqu'en formation j'avais déjà fait quelque chose comme ça sous Excel.
Window XP. Excel 2000. Works suite 2003. Open Office. Java Sun. Maxthon. Le tout mis à jour sur les nouvelles versions françaises dès qu'elles sont disponibles.
MichelXld
Membre OOrganisé
Membre OOrganisé
Messages : 66
Inscription : 10 janv. 2006 21:33

Message par MichelXld »

bonjour

j'espere que cet exemple pourra t'aider

http://oooforum.free.fr/cijoint/fichier ... 093913.ods


je n'ai pas paufiné les formules . il est certainement possible de les simplifier


bon week end
michel
OOo 2.1 & WinXP(sp2)
Avatar de l’utilisateur
Pyanepsion
Membre hOOnoraire
Membre hOOnoraire
Messages : 191
Inscription : 11 mars 2006 07:53

Message par Pyanepsion »

Ce nouvel exemple est également intéressant mais il a encore 2 défauts majeurs. Il nécessite une manipulation à chaque nouvelle saisie (sauf à mettre l'écriture en transparent mais alors là quelle lourdeur) et avec la colonne cachée cette méthode n'est plus adaptée dès lors qu'il y a en réalité autant de zones à réaliser que de prénom et que chaque jour il peut y avoir de nouvelles zone (prénoms) à créer et à ajouter.

Sous Excel avec un seul prénom simultanément on aurait réalisé ça :

On nomme la zone Prénom Nom Champ sur la feuille base.

-Sur la colonne A1:A1000

Code : Tout sélectionner

=SI(ESTNUM(PETITE.VALEUR(SI(ESTNA(EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));"";  EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));LIGNE(INDIRECT("1:"&LIGNES(champ)))));
INDEX(champ;PETITE.VALEUR(SI(ESTNA(EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));"";
EQUIV(Nom&LIGNE(champ);INDEX(champ;;1)&LIGNE(champ);0));LIGNE(INDIRECT("1:"&LIGNES(champ))));1);"")
Sur la colonne B on remplace le dernier 1 par 2. J'ignore comment faire sous Calc.

Voir cet exemple proposé par JB : http://oooforum.free.fr/cijoint/fichier ... 101501.xls. Il ne faudrait par ailleurs pas utiliser de matrice car la Feuille Base peut en pratique atteindre plusieurs centaines de lignes et qu'une matrice ne permet pas de modifications ultérieures.
Window XP. Excel 2000. Works suite 2003. Open Office. Java Sun. Maxthon. Le tout mis à jour sur les nouvelles versions françaises dès qu'elles sont disponibles.
MichelXld
Membre OOrganisé
Membre OOrganisé
Messages : 66
Inscription : 10 janv. 2006 21:33

Message par MichelXld »

rebonjour

Si tu trouves lourd le simple fait de sélectionner une donnée et d'utiliser les poignees de recopie ,tu n'es pas au bout de tes peines dans le monde des tableurs ...;o)
de plus , vouloir "faire comme Excel" n'est pas toujours la meilleure méthode pour aborder des projets


tu trouveras dans ce lien un autre exemple qui fonctionne sur les 2 tableurs (OOo & Excel)

http://oooforum.free.fr/cijoint/fichier ... 120355.ods



bonne journée
michel
OOo 2.1 & WinXP(sp2)
Avatar de l’utilisateur
Pyanepsion
Membre hOOnoraire
Membre hOOnoraire
Messages : 191
Inscription : 11 mars 2006 07:53

Message par Pyanepsion »

Merci à nouveau à toi MichelXld.

Hélas comme tu t'en doutes cette réponse ne peut pas convenir puisqu'elle nécessite d'utiliser une colonne cachée K et que la méthodologie proposée ne correspond pas à la facilité d'utilisation recherchée. Ce procédé est en effet impraticable quand on se retrouve avec plus de 1000 lignes par nom et que chaque jour on peut modifier beaucoup de données.

Il est normal de saisir une fois la page Données. La recopier de nombreuses fois dans la journée sur la page Résultat n'est plus envisageable de gaité de coeur. J'ai proposé un exemple qui fonctionne bien sous Excel excepté qu'il ne faudrait pas utiliser une matrice et que je n'arrive pas non plus à traduire la formule sous Calc.

Je pense que si c'est possible sous Excel alors cela l'est nécessairement sous Calc ! Reste seulement à convertir la formule... :)
Window XP. Excel 2000. Works suite 2003. Open Office. Java Sun. Maxthon. Le tout mis à jour sur les nouvelles versions françaises dès qu'elles sont disponibles.
MichelXld
Membre OOrganisé
Membre OOrganisé
Messages : 66
Inscription : 10 janv. 2006 21:33

Message par MichelXld »

rebonjour
Hélas comme tu t'en doutes cette réponse ne peut pas convenir puisqu'elle nécessite d'utiliser une colonne cachée K


je n'ai toujours pas compris pourquoi tu fais une fixation sur la colonne intermédiaire et en quoi cela est génant...


et que la méthodologie proposée ne correspond pas à la facilité d'utilisation recherchée.
tu as juste un prénom à saisir dans la cellule D2


Ce procédé est en effet impraticable quand on se retrouve avec plus de 1000 lignes par nom et que chaque jour on peut modifier beaucoup de données.
Il est normal de saisir une fois la page Données.
La recopier de nombreuses fois dans la journée sur la page Résultat n'est plus envisageable de gaité de coeur.
Peux tu réexpliquer exactement quelles manipulations tu effectues dans la feuille "résultat" car je viens de faire un essai avec 2500 lignes sans probleme particulier. J'en déduis donc que nous ne parlons pas de la meme chose .

Dans l'exemple proposé , la feuille résultat ne contient que 15 lignes pour afficher les valeurs correspondant au prénom saisi , mais il te suffit d'utiliser les poignées de recopie pour étendre les formules et définir ( une seule fois) la zone de résultats .


bon apres midi
michel
OOo 2.1 & WinXP(sp2)
Avatar de l’utilisateur
Pyanepsion
Membre hOOnoraire
Membre hOOnoraire
Messages : 191
Inscription : 11 mars 2006 07:53

Message par Pyanepsion »

Resalut donc à toi MichelXld. L'explication est un peu complexe et peu utile à la compréhension du problème. Je te l'envoie donc par MP.

Voici mes premiers résultats de la traduction de la formule Excel précitée. On voit qu'avec Calc le nom Champ remplace avantageusement la fonction Excel INDEX(Champ;;1). Arrivé là je bloque sur la traduction de la formule EQUIV. J'obtient le résultat Err :504 au lieu de la colonne verte vive attendue (1, 3, 5 et 7 indiquant la position de Patricia dans la matrice, le reste de la colonne devant renvoyer une erreur).

Image

Comment faire pour obtenir le résultat escompté? Merci à tous.
--
Merci à Marco qui a résolu cette dernière question sur un autre forum :
la formule (toujours matricielle) =(nom&LIGNE(champ)=champ&LIGNE(champ))*LIGNE(champ) renvoie par contre le n° de ligne de l'enregistrement, s'il existe, sinon 0.
Nous n'obtenons pas tout à fait le résultat attendu mais ça devrait aller. Je continue l'exploration de la formule Excel. Marco pense qu'il y a en fait un bogue dans l'imbrication des formules matricielles. Qu'en est-il?
Chez moi, pour avoir la même chose que vous, j'ai du d'abord rentrer les formules en f2:f36 et g2:g36 comme matricielles. J'ai alors nommé f2:f36=un et g2:g36=deux et j'ai rentré en h2:h36 la formule =EQUIV(un;deux;0) comme matricielle et là,... ça marche. Le pb résiderait-il donc dans l'imbrication de deux formules matricielles ?
--
Je continue dans mon problème. J'ai donc maintenant les emplacements de Patricia dans la zone Champ. Je souhaiterais les regrouper en début, en haut, de liste. Pour obtenir dans cet exemple de haut en bas : 1;3;5;7 puis rien. Pour cela je pensais utiliser la fonction PETITE.VALEUR().

J'applique sur la matrice de la colonne verte la fonction =PETITE.VALEUR((Nom&LIGNE(Champ)=Champ&LIGNE(Champ))*LIGNE(Champ)). Cela ne fonctionne pas. Où est l'erreur (il manque effectivement un paramètre par rapport à la version Excel)? Comment corriger et obtenir le résultat attendu?

Merci à tous.
Window XP. Excel 2000. Works suite 2003. Open Office. Java Sun. Maxthon. Le tout mis à jour sur les nouvelles versions françaises dès qu'elles sont disponibles.
nouv
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 23 mars 2006 09:56

Message par nouv »

bonjour,
pour ma part equiv avec ou sans matrice fonctionne bien et petite.valeur aussi.
Ou alors je n'ai pas bien compris le problème et dans ce cas là toutes mes excuses

http://oooforum.free.fr/cijoint/fichier ... 102447.ods

petit truc quand même la valeur d'erreur étant considérée comme une valeur, j'ai ajouter une condition pour éviter qu'elle n'apparaisse pas.

><>
windows 2000 - OOo 2.0.2
><>
Avatar de l’utilisateur
Pyanepsion
Membre hOOnoraire
Membre hOOnoraire
Messages : 191
Inscription : 11 mars 2006 07:53

Message par Pyanepsion »

Bonjour à toi Nouv.

Il ne faut pas utiliser les résultats des colonnes F, G et H qui ne sont là que pour montrer des résultats intermédiaires, mais intégrer directement le calcul dans une seule formule.
Marco a écrit :Chez moi, pour avoir la même chose que vous, j'ai du d'abord rentrer les formules en f2:f36 et g2:g36 comme matricielles. J'ai alors nommé f2:f36=un et g2:g36=deux et j'ai rentré en h2:h36 la formule =EQUIV(un;deux;0) comme matricielle et là,... ça marche. Le pb résiderait-il donc dans l'imbrication de deux formules matricielles ?
Comme le rapelle Marco la difficulté consiste ici à imbriquer les calculs dans une seule formule. D'où le problème.
{=Nom&LIGNE(Champ)} fonctionne. Colonne F.
{=Champ&LIGNE(Champ)} fonctionne. Colonne G.
{=(nom&LIGNE(champ)=champ&LIGNE(champ))*LIGNE(champ)} fonctionne. Nouvelle colonne H en remplacement de EQUIV().

{=PETITE.VALEUR((Nom&LIGNE(Champ)=Champ&LIGNE(Champ))*LIGNE(Champ))} ne fonctionne pas.

Résultats attendus avec notre exemple :
Image
Window XP. Excel 2000. Works suite 2003. Open Office. Java Sun. Maxthon. Le tout mis à jour sur les nouvelles versions françaises dès qu'elles sont disponibles.
Marco.c
Fraîchement OOthentifié
Messages : 1
Inscription : 13 avr. 2006 09:19
Localisation : Belgique

Message par Marco.c »

Bonjour, c'est moi le Marco de l'autre forum, où j'ai touvé ce fil qui ajoute une petite lumière : Calc s'attendrait à trouver les plages de recherche triées en ordre croissant. Par contre, dans l'aide de Calc, on voit que ce comportement par défaut peut être modifié par le troisième paramètre, facultatif, de la fonction... Bof, bof.
Marco
OOo_2.0.2 Linux (Zenwalk, Mandriva), WinXp
nouv
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 23 mars 2006 09:56

Message par nouv »

bonjour et joyeuse Pâque à tous,
après quelques heures, ça donne ça :
http://oooforum.free.fr/cijoint/fichier ... 065831.ods
on doit pouvoir améliorer mais ça paraît un bon début
windows 2000 - OOo 2.0.2
><>
Avatar de l’utilisateur
Pyanepsion
Membre hOOnoraire
Membre hOOnoraire
Messages : 191
Inscription : 11 mars 2006 07:53

Message par Pyanepsion »

L'essentiel est fait.

Merci à toi Nouv pour ce joli cadeau de Pâque. :D
Window XP. Excel 2000. Works suite 2003. Open Office. Java Sun. Maxthon. Le tout mis à jour sur les nouvelles versions françaises dès qu'elles sont disponibles.
nouv
Membre lOOyal
Membre lOOyal
Messages : 43
Inscription : 23 mars 2006 09:56

Message par nouv »

slt,
en reprenant le fichier excel pour voir comment était établi le compteur ( :oops: j'aurai du y penser avant ! pourquoi cherché ce qui a déjà été trouvé ! :D ), j'ai modifié la formule ce qui permet de mettre le tableau recopié sur n'importe quelle ligne :
http://oooforum.free.fr/cijoint/fichier ... 102127.ods

à plus
windows 2000 - OOo 2.0.2
><>
Avatar de l’utilisateur
Pyanepsion
Membre hOOnoraire
Membre hOOnoraire
Messages : 191
Inscription : 11 mars 2006 07:53

Message par Pyanepsion »

Je commençais à douter que mon projet soit possible sur Calc alors qu'il est assez aisé sur Excel.

Calc est bien plus agréable à utiliser que Excel, il est globalement plus puissant que Excel et en plus il est gratuit. Il souffre par compte de jeunesse et certaines fonctions ne sont pas aussi abouties que sur Excel. Ainsi, les formules ne sont pas réactualisées automatiquement dans les formatages conditionnels et dans les matrices. De même les matrices imbriquées ne sont pas correctement gérées, les filtres sont largement insuffisants, les si imbriqués sont très limités et le nombre de formatage conditionnel simultané est plutôt restrictif. Enfin, les styles et formatages ne sont pas réactualisés automatiquement lorsqu'on modifie la cellule ayant servie au nouveau style. Il y a aussi certains manques importants comme une gestion calamiteuse du point du pavé numérique et l'absence de prise en charge de tous les symboles dans les noms de feuilles (le nom "carnet d'ordre" est par exemple impossible), sanc compter la gestion des notes de validations encore bien incomplète.

J'ai alors posé des questions sur différents forums et sur fût le commencement de la galère. Contrairement au forum de Microsoft sur Excel où des bénévoles donnent de nombreuses réponses en quelques minutes, ce ne fût sur les forums de Calc que des réponses du genre "Mais pourquoi tu veux faire ça" ; "Il faut créer une macro" ; "Si tu trouve ça lourd tu n'es pas au bout de tes peines", etc. sans compter ceux qui se croyaient en guerre contre Microsoft et ne voyaient en moi qu'un agent perturbateur infiltré par "l'ennemi". Bref, au bout de plusieurs semaines le projet commencé à la mi-mars semblait au point mort.

Il existe heureusement des gens compétents et je tiens non seulement à remercier mais surtout à féliciter de vivement Nouv, Marco et Letouareg pour les aides si précieuses qu'ils ont su me prodiguer.

Il reste encore quelques points à régler. Mon projet devrait être terminé j'espère d'ici un bon mois. Je le mettrais alors probablement en diffusion libre. Merci à tous ceux qui ont contribué à résoudre mon gros problème matriciel.
Window XP. Excel 2000. Works suite 2003. Open Office. Java Sun. Maxthon. Le tout mis à jour sur les nouvelles versions françaises dès qu'elles sont disponibles.
Avatar de l’utilisateur
c-stefan
Membre fOOndateur
Membre fOOndateur
Messages : 1146
Inscription : 16 janv. 2006 14:07
Localisation : Lisieux

Message par c-stefan »

Bonjour,

ici ce n'est pas un forum ms-office ( il n'y a pas de guerre contre ms içi) avec des milliers de membres !

Ce forum est jeune, il a seulement quelques mois, même si ton problème ne peut attendre, beaucoup de gens découvres openoffice, et donc ne pose que des questions.

Il y a heureusement des gens compétents.

Pour conclure.

Laisse le temps à ce forum de ce faire connaître. déjà il existe.

et j'avoue que tes états d'ame !

Merci de comprendre.
7.5.4.2 (AARCH64) LibreOffice
Mac OS X 13.4.1
Avatar de l’utilisateur
Pyanepsion
Membre hOOnoraire
Membre hOOnoraire
Messages : 191
Inscription : 11 mars 2006 07:53

Message par Pyanepsion »

c-stefan a écrit :et j'avoue que tes états d'ame !

Merci de comprendre.
Faut-il te retourner le compliment mon cher Stephan? :lol:

Je vais donc le redire plus clairement. J'ai été à 2 pas d'arrêter Open Office et l'aurais fait si je n'avais pas trouvé heureusement quelques personnes très compétentes, Nouv, Marco, Letouareg et quelques autres, qui ne cherchent pas à me vendre des salades. D'autres utilisateurs ne seront peut-être pas aussi patients et pourraient être définitivement perdus à Open Office.

J’estime en effet qu’il est aberrant d'insinuer qu’une exigence de qualité est indigne d’un gratuit. Que puisque c’est gratuit l’utilisateur ne doive pas nécessairement tout trouver extraordinaire. Je trouve inapproprié de voir de nombreuses files (voir les chambres dédiées du forum) ne parler que de faire la guerre à Microsoft. Je pense au contraire que si Open Office veut avoir des ambitions de diffusion en entreprise, alors Open Office doit savoir répondre aux difficultés des entreprises et connaître ses limites.

J’ai un projet précis. Je rencontre des difficultés. Je pose des questions. Il m’est encore resté en travers de la gorge de m’entendre dire que je travaillais pour Microsoft puisque mes messages ne portaient en dernière analyse que sur des insuffisances des logiciels ou encore que mes prétentions à vouloir minimiser sous Calc le nombre de mes saisies au strict minimum est d’une grande inconséquence… sans compter quelques messages où la première réaction est de sous-entendre que je mens ou que je ne sais pas lire (Mauvais affichage des pages Internet dans Writer, Impossibilité d’effacement de la liste des 10 derniers fichiers,…).

Open Office est une bonne alternative. Si Writer est encore trop rudimentaire pour une utilisation intensive, Calc est largement en avance sur ces concurrents. Cela n’empêche pas, tout comme leurs concurrents, d’avoir eux aussi des difficultés ou des insuffisances. C’est une piètre image qui nous est alors rendue quand on se fait agresser parce que nos inquiétudes à mener à bien le projet dans les temps blessent alors l’ego de quelques prosélytes pour qui le logiciel ne peut qu’être parfait.

Je préfère 100 fois des gens qui m’expliquent que telle fonction est impossible parce que telles raisons et me proposent d’autres solutions, que ceux qui me disent que ça fonctionne et que de toute façon si j’ai un problème c’est parce que tel autres logiciels, ou mon besoin ou (au choix) est défaillant ou inutile…
Window XP. Excel 2000. Works suite 2003. Open Office. Java Sun. Maxthon. Le tout mis à jour sur les nouvelles versions françaises dès qu'elles sont disponibles.