[Résolu] auto copie feuille à l'autre avec triage différent

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.
Titiju76
Fraîchement OOthentifié
Messages : 2
Inscription : 04 avr. 2019 17:31

[Résolu] auto copie feuille à l'autre avec triage différent

Message par Titiju76 »

Bonjour à tous les spécialistes !!

J'espère que mon post est au bon endroit mais je n'ai pas trouvé de catégorie « idéale » car il me semble que le sujet est transversal !
Cela dit je vous expose mon problème. En effet, je souhaite incrémenter la première feuille d'un classeur avec une liste de produits gérés par ordre alphabétique (jusque là …. tout va bien lol). Tout se complique lorsque je souhaite que les saisies de ma première page se reportent automatiquement sur une deuxième feuilles (d'un même classeur), avec cette fois un tri, en premier par groupe (caractéristique attribuée dans la première page) et par ordre alphabétique à l'intérieur de ce groupe. Ce n'est peut-être pas très compliqué dit comme cela mais, pour compliquer la chose, j'aurais besoin que chaque groupe soit séparé du suivant via une petite mise en forme (cellules fusionnées et intitulé du groupe affiché et centré).
Sachant que des produits seront régulièrement ajoutés et retirés (et probablement des groupes, mais cela reste secondaire).

J'espère avoir été clair dans mes explications !!! Je vous joins un modèle de ce que je souhaiterais en précisant que par flemme j'ai intitulé mes produits avec un même nom, ce qui ne sera pas le cas dans les faits …....

Voilà, si toutefois cette problématique vous semble abordable, je suis preneur.

D'avance, merci à tous !
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Oukcha le 15 mai 2019 07:29, modifié 1 fois.
Raison : Titre raccourci pour balisage + balisage
Apache OpenOffice 4.1.5
W7
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5752
Inscription : 02 janv. 2009 23:56

Re: auto copie d'un feuille à l'autre avec triage différent

Message par Jean-Louis Cadeillan »

Bonjour,
Ci-joint une proposition qui utilise une formule (ici en A4 de la feuille Gestion famille) :

Code : Tout sélectionner

=SI(ESTERR(PETITE.VALEUR(SI(Groupe="G1";LIGNE(Groupe);"");LIGNE(A1)));"";INDEX(INDIRECT(A$2);PETITE.VALEUR(SI(Groupe="G1";LIGNE(Groupe);"");LIGNE(A1))-3))
Groupe étant la plage nommée $'Listing général'.$B$4:$B$100.
C'est une formule matricielle à une seule cellule. Elle se valide par Ctrl+Maj+Entrée.
Pour recopier une formule matricielle vers le bas (ou vers la droite) :
  • il suffit de positionner la souris dans le coin inférieur droit de la cellule : le curseur se transforme en croix (+), puis, il faut cliquer/glisser vers le bas (ou vers la droite) tout en appuyant simultanément sur la touche Ctrl ;
  • une autre manière de faire est de copier la cellule initiale (Ctrl+C), puis de sélectionner la plage des cellules qui doivent contenir la même formule, puis de coller (Ctrl+V) ;
  • ces deux manières fonctionnent aussi dans le cas où la formule matricielle initiale occupe une plage de cellules et non une seule cellule : dans ce cas, bien sûr, il faut sélectionner toute cette plage au départ.
On remplacera G1 par G2, etc. selon le groupe.
Cette formule est combinée à un autofiltre en colonne G, titrée Vide : cliquant sur la petite flèche du titre puis en choisissant 0, seules les lignes non vides apparaissent. Les formules de cette colonne G ont été rendues invisibles par formatage.
Il y a 20 lignes prévues pour chaque groupe, mais on peut en faire plus.
Titiju76 a écrit :par flemme j'ai intitulé mes produits avec un même nom
Par flemme, j'ai fait des formules qui me trouvent automatiquement des libellés, ce qui me permet de vérifier mes formules :wink:
À tester.
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_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
Titiju76
Fraîchement OOthentifié
Messages : 2
Inscription : 04 avr. 2019 17:31

Re: auto copie d'un feuille à l'autre avec triage différent

Message par Titiju76 »

Bonsoir Jean-Louis,

En ce qui commence à être pour moi une heure avancée de la soirée, je manque de temps (et surtout de connaissance.....) pour comprendre la formule élaborée par vos soins. Toutefois, un rapide survol des résultats produits par celle-ci à travers le document transmis, m'oblige à vous adresser UN SINCÈRE ET GRAND MERCI pour ce formidable travail !!! :bravo: :bravo: :bravo:

Je vais effectuer quelques mises en situation mais a priori votre travail répond parfaitement à ma demande. Néanmoins, comme j'aime comprendre ce que je mets en oeuvre, je me permettrai de revenir vers vous et tenter de comprendre et apprivoiser la formule (notamment augmenter le nombre de lignes par groupe et éventuellement le nombre de groupes).

Dans l'attente, je vous réitère mes plus vifs remerciements,
bien à vous,
Ju
Apache OpenOffice 4.1.5
W7
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5752
Inscription : 02 janv. 2009 23:56

Re: auto copie d'un feuille à l'autre avec triage différent

Message par Jean-Louis Cadeillan »

Bonsoir,
Ci-joint une version à 20 groupes de 30 produits maxi. Je réponds ici au MP (sinon, ça n'a pas grand intérêt, d'autres que toi peuvent avoir des problèmes similaires).
Titiju76 a écrit :serait-il possible que la feuille 2 où se recopient les données s'adapte automatiquement au nombre de lignes saisies dans la première feuille. En effet, si par exemple un groupe compte 30 lignes, toutes n'apparaissent pas automatiquement et à l'inverse si l'on en retire, des lignes vides restent affichées.
Je pense que quand tu as étendu les groupes, tu n'as pas étendu la formule (non matricielle) de la colonne G : je rappelle que dans cette colonne, on teste juste si la ligne en cours est vide (en comparant à "" la cellule qui doit contenir le libellé du produit)
Jean-Louis Cadeillan a écrit :Cette formule est combinée à un autofiltre en colonne G, titrée Vide : cliquant sur la petite flèche du titre puis en choisissant 0, seules les lignes non vides apparaissent. Les formules de cette colonne G ont été rendues invisibles par formatage.
Cet autofiltre est à réactiver à chaque changement de valeurs sur la feuille Listing général.
Tu peux supprimer l'invisibilité des cellules de G en les sélectionnant puis Ctrl+M (effacer le formatage direct), pour mieux comprendre ce qui se passe. L'invisibilité n'est due qu'à des caractères blancs sur fond blanc.
Enfin n'oublie pas que des plages ont été définies : Groupe, Produit, info1, info2, ... info5. Ces plages servent dans la formule principale, soit directement, soit avec la fonction INDIRECT(). C'est à toi de maintenir les plages nommées en fonction de l'étendue des données : voir Insertion > Nom > Définir.
J'ai laissé dans cette deuxième version des traces de la génération aléatoire des noms sur la feuille Génération. Cela peut te servir si tu dois tester un fonctionnement ou si tu dois présenter un fichier exemple sur le forum !
Enfin, il est peut-être possible de réactiver automatiquement l'autofiltre par macro sur un événement du type « valeur modifiée sur une cellule quelconque de la feuille Listing général », je ne sais pas, mais si tu envisages ce prolongement, ouvre un fil dans la section Macros et API.
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_401) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1