[Résolu] copie contenu de lignes issues de plusieurs feuilles d'après la valeur d'une colonne

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.
Romu39
Fraîchement OOthentifié
Messages : 5
Inscription : 20 mars 2024 10:27

[Résolu] copie contenu de lignes issues de plusieurs feuilles d'après la valeur d'une colonne

Message par Romu39 »

Bonjour à tous

Malgré mes recherches sur le forum je n'ai pas trouvé de réponses à mon problème suivant:

Dans mon exemple joint, je voudrais recopier le contenu des lignes des 3 premières feuilles dans les feuilles " A ACHETER" et "A TRAITER" suivant le contenu de la colonne ETAT présente dans chacune des 3 premières feuilles.
Je précise que les feuilles de données (jusqu'à 150 feuilles possibles) seront toujours construites de la même façon (max 35 lignes).
J'ai fait un essai avec une formule matricielle qui fonctionne presque mais je n'arrive pas à récupérer les données sur plusieurs feuilles. Je n'ai pas pu définir la plage de données sur plusieurs feuilles (peut-être impossible ?)

Merci d'avance pour votre aide.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Romu39 le 21 mars 2024 13:51, modifié 1 fois.
LibreOffice Version: 7.6.5.2 sous Windows 10 ou 11
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1667
Inscription : 15 déc. 2010 08:33

Re: copier le contenu de lignes issues de plusieurs feuilles en fonction de la valeur d'une colonne

Message par yclik »

Bonjour
une proposition dans ce classeur.
copie_lignes_plusieurs_feuilles_Romu39.ods
Mais cela deviendra vite une usine à gaz avec 150 feuilles.

Le module BASE serait plus approprié.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.14 sous Windows 10
Romu39
Fraîchement OOthentifié
Messages : 5
Inscription : 20 mars 2024 10:27

Re: copier le contenu de lignes issues de plusieurs feuilles en fonction de la valeur d'une colonne

Message par Romu39 »

Merci pour cette réponse. elle répond à mon problème. :super:
Effectivement cela va être un peu compliqué avec 150 feuilles.
Malheureusement je ne sais pas utilisé Base
LibreOffice Version: 7.6.5.2 sous Windows 10 ou 11
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9258
Inscription : 28 août 2010 08:45

Re: copier le contenu de lignes issues de plusieurs feuilles en fonction de la valeur d'une colonne

Message par micmac »

Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
Arnault
Membre hOOnoraire
Membre hOOnoraire
Messages : 102
Inscription : 01 avr. 2011 13:31

Re: copier le contenu de lignes issues de plusieurs feuilles en fonction de la valeur d'une colonne

Message par Arnault »

Vite avant que ça ferme, une autre proposition utilisant les autofiltres de calc :
Regrouper dans la même feuille les contenus de chacune de vos 150 en ajoutant une colonne CATEGORIE.
Appliquer l'autofiltre et choisir T ou A dans la colonne ETAT pour n'afficher que les lignes qui les contiennent.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 24.2 (x64)
OpenOffice 4.1.15
Windows 11 pro 64 23H2
Romu39
Fraîchement OOthentifié
Messages : 5
Inscription : 20 mars 2024 10:27

Re: copier le contenu de lignes issues de plusieurs feuilles en fonction de la valeur d'une colonne

Message par Romu39 »

Arnault a écrit : 20 mars 2024 22:30 Vite avant que ça ferme, une autre proposition utilisant les autofiltres de calc :
Regrouper dans la même feuille les contenus de chacune de vos 150 en ajoutant une colonne CATEGORIE.
Appliquer l'autofiltre et choisir T ou A dans la colonne ETAT pour n'afficher que les lignes qui les contiennent.
Cela ne me convient pas trop car je voudrait automatiser la copie à partir du moment ou je rempli la colonne "ETAT".
Merci quand même.
LibreOffice Version: 7.6.5.2 sous Windows 10 ou 11
Romu39
Fraîchement OOthentifié
Messages : 5
Inscription : 20 mars 2024 10:27

Re: copier le contenu de lignes issues de plusieurs feuilles en fonction de la valeur d'une colonne

Message par Romu39 »

micmac a écrit : 20 mars 2024 22:20 Sujet résolu ?
Comment clore un sujet lorsqu'il est résolu
Pas tout à fait car la solution est un peu lourde à mettre en œuvre avec 150 feuilles.
Y'aurait-il une solution plus simple ?
LibreOffice Version: 7.6.5.2 sous Windows 10 ou 11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25184
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: copier le contenu de lignes issues de plusieurs feuilles en fonction de la valeur d'une colonne

Message par Dude »

Salut,
Romu39 a écrit : 21 mars 2024 10:56Pas tout à fait car la solution est un peu lourde à mettre en œuvre avec 150 feuilles.
Y'aurait-il une solution plus simple ?
Tu cherches à visser avec un marteau. Donc le plus simple, c'est utiliser le bon outil :
yclik a écrit : 20 mars 2024 17:38 Le module BASE serait plus approprié.
Autre possibilité, utiliser une macro qui automatisera tout le processus de filtrage et de copie.
C'est plus complexe puisqu'il faut s'investir dans la programmation.
Romu39
Fraîchement OOthentifié
Messages : 5
Inscription : 20 mars 2024 10:27

Re: copier le contenu de lignes issues de plusieurs feuilles en fonction de la valeur d'une colonne

Message par Romu39 »

Je vais essayé avec Base.
Je passe le sujet en résolu.
Merci
LibreOffice Version: 7.6.5.2 sous Windows 10 ou 11
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: copier le contenu de lignes issues de plusieurs feuilles en fonction de la valeur d'une colonne

Message par Jean-Louis Cadeillan »

Bonjour,
Arnault a écrit : 20 mars 2024 22:30 Regrouper dans la même feuille les contenus de chacune de vos 150 en ajoutant une colonne CATEGORIE.
+1 : c'est la meilleure approche à défaut d'une base de données relationnelle.
J'ai repris la structure d'Arnault (que je salue !), avec une démarche un peu différente :
  • une feuille Saisie (c'est la feuille onglet1 d'Arnault, mais sans l'autofiltre) pour tous les articles quelle que soit la catégorie ; la catégorie peut se saisir par liste déroulante ou directement, la liste s'enrichira automatiquement des nouvelles entrées ; l'état se saisit par liste déroulante fermée ;
  • une feuille Modèle_Catégorie, qu'il suffit de recopier, en changeant le nom, par exemple ALIMENTATION ; du coup cette feuille affichera automatiquement tous les articles de cette catégorie (j'ai utilisé une formule nommée Cat pour cela) ; ces feuilles de type Modèle_Catégorie sont des feuilles de visualisation ou d'impression, pas de saisie ;
  • les deux feuilles À_acheter et À_traiter, qui recensent respectivement tous les articles à acheter ou à traiter, globalement pour l'ensemble des catégories ; ce sont aussi des feuilles de visualisation ou d'impression ;
  • l'ensemble est basé sur des formules matricielles utilisant des plages nommées, pour faciliter la maintenance.
La reconnaissance de la catégorie pour une feuille de catégorie se fait par le nom de l'onglet. On aurait pu très bien dédier une cellule de la feuille pour saisir (par liste déroulante) la catégorie voulue. La feuille Saisie peut parfaitement conserver ses autofiltres, cela n'impacte en rien les autres feuilles. L'avantage des feuilles de catégorie dédiées, ainsi que des feuilles A et T, c'est qu'elles se mettent à jour automatiquement, quand on saisit de nouvelles données sur la feuille Saisie. Sur cette feuille, on peut saisir les données pour n'importe quelle catégorie, les unes à la suite des autres, dans l'ordre des catégories ou pas. On pourrait aussi y ajouter une détection de doublons par formatage conditionnel, basée sur le code, par exemple.
À tester ci-joint,
Cordialement,
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1