XL 2016 Récupérer des données pour créer une potence comptable

cgpa

XLDnaute Occasionnel
Bonjour à tous,
Je tente de créer un livre comptable mais j'ai un problème pour récupérer et présenter des données regroupées.
J'aimerais par formule ou macro récupérer certaines données d'un tableau afin de les présenter sous forme de potence comptable. J'ai bien tenté avec le filtre avancé ou le tableau croisé dynamique, mais je n'y parviens pas. Il y a peut-être plus facile comme démarche.
Je joins un fichier avec une explication de ma demande sur la feuille "grand livre" et "grand livre 2".
Un grand merci d'avance à toute personne se penchant sur ce problème, même s'il ne propose pas de solution.
 

Pièces jointes

  • livre journal.xlsm
    38.2 KB · Affichages: 44

CHALET53

XLDnaute Barbatruc
bonsoir,
J'ai tenté un truc sur la feuille Grand Livre (c'est quand même une usine à gaz)
Lance le programme avec le bouton Lance
Harmonisation des contenus : difficile d'avoir code à gauche et code à droite
Je ne peux guère faire plus
Bon courage
 

Pièces jointes

  • CGPA livre journal.xlsm
    46.5 KB · Affichages: 54

cgpa

XLDnaute Occasionnel
bonsoir,
J'ai tenté un truc sur la feuille Grand Livre (c'est quand même une usine à gaz)
Lance le programme avec le bouton Lance
Harmonisation des contenus : difficile d'avoir code à gauche et code à droite
Je ne peux guère faire plus
Bon courage

Bonsoir Chalet53,
Un tout grand merci pour ce code et le temps que tu as passé pour résoudre mon problème.
Je ne comprends pas toutes les lignes du code, j'ai essayé de le "traduire" en bout de ligne car je désire le transposer pour la 2ème page du grand livre. Par contre, je ne comprends pas l'usage de la colonne P. Comme je pense que tru m'as mis sur la voie, peux-tu m'expliquer? Merci beaucoup.
 

Pièces jointes

  • CGPA livre journal.xlsm
    46.4 KB · Affichages: 40

cgpa

XLDnaute Occasionnel
Bonjour,

En formule
Bonsoir djidji59430,
Merci beaucoup pour cette formule qui marche bien.
Je tente de la comprendre pour pouvoir l'exploiter dans une autre feuille.
Je ne connaissais pas la formule AGREGAT et je ne comprends pas les aides d'Excel à ce sujet.
Pouvez-vous m'expliquer cette partie: INDEX('livre journal'!$G$3:$G$23;AGREGAT(15;6;LIGNE($A$1:$A$21)/('livre journal'!$C$3:$C$23='Grand livre'!$A$15);LIGNES($1:1))) ?
Merci beaucoup pour la formule que vous m'avez offerte et le temps que vous avez consacré à mon problème.
 

djidji59430

XLDnaute Barbatruc
Re
Pour creer la liste, on recherche l'equiv de {petite.valeur(si('livre journal'!$C$3:$C$23='Grand livre'!$A$15);LIGNE($A$1:$A$21));LIGNES($1:1))} qui recherche les lignes de la matrices qui correspondent a la condition ('livre journal'!$C$3:$C$23='Grand livre'!$A$15) et que l'on range avec la valeur LIGNES($1:1) qui se modifie en descendant. Or cette formule pour fonctionner doit etre matricielle.
La forme AGREGAT(15 correspond a petite.valeur matricielle, mais sans matrice, ce qui va plus vite et AGREGAT(15;6 ignore les erreurs engendrées par /('livre journal'!$C$3:$C$23='Grand livre'!$A$15) qui font des #div/0 pour les valeurs qui ne correspondent pas a la condition.

Cdlmnt
 

CHALET53

XLDnaute Barbatruc
Bonjour,
Bien que l'option proposée par djidji soit intéressante, je réponds à ta première question sur la colonne P
Afin d'établir des potences uniquement pour les comptes ayant enregistré des opérations, je sélectionne les comptes de la colonne C du livre journal sans doublon c'est le premier programme exécuté lorsqu'on lance à partir du bouton Lance

a+
 

cgpa

XLDnaute Occasionnel
Re
Pour creer la liste, on recherche l'equiv de {petite.valeur(si('livre journal'!$C$3:$C$23='Grand livre'!$A$15);LIGNE($A$1:$A$21));LIGNES($1:1))} qui recherche les lignes de la matrices qui correspondent a la condition ('livre journal'!$C$3:$C$23='Grand livre'!$A$15) et que l'on range avec la valeur LIGNES($1:1) qui se modifie en descendant. Or cette formule pour fonctionner doit etre matricielle.
La forme AGREGAT(15 correspond a petite.valeur matricielle, mais sans matrice, ce qui va plus vite et AGREGAT(15;6 ignore les erreurs engendrées par /('livre journal'!$C$3:$C$23='Grand livre'!$A$15) qui font des #div/0 pour les valeurs qui ne correspondent pas a la condition.

Cdlmnt
Merci beaucoup pour cette explication qui me sera utile pour d'autres applications.
 

cgpa

XLDnaute Occasionnel
Bonjour,
Bien que l'option proposée par djidji soit intéressante, je réponds à ta première question sur la colonne P
Afin d'établir des potences uniquement pour les comptes ayant enregistré des opérations, je sélectionne les comptes de la colonne C du livre journal sans doublon c'est le premier programme exécuté lorsqu'on lance à partir du bouton Lance

a+
Merci beaucoup pour l'explication. Cette manière de procéder est également très intéressante: j'aurai matière à progresser (ou tenter, tout du moins...). encore merci.
 

cgpa

XLDnaute Occasionnel
Re
Pour creer la liste, on recherche l'equiv de {petite.valeur(si('livre journal'!$C$3:$C$23='Grand livre'!$A$15);LIGNE($A$1:$A$21));LIGNES($1:1))} qui recherche les lignes de la matrices qui correspondent a la condition ('livre journal'!$C$3:$C$23='Grand livre'!$A$15) et que l'on range avec la valeur LIGNES($1:1) qui se modifie en descendant. Or cette formule pour fonctionner doit etre matricielle.
La forme AGREGAT(15 correspond a petite.valeur matricielle, mais sans matrice, ce qui va plus vite et AGREGAT(15;6 ignore les erreurs engendrées par /('livre journal'!$C$3:$C$23='Grand livre'!$A$15) qui font des #div/0 pour les valeurs qui ne correspondent pas a la condition.

Cdlmnt

Merci DjiDji
Je vais adapter un mixte de votre proposition et celle de Chalet 53 (pour une autre feuille du fichier). Chalet53 m'a déjà permis d'extraire sans doublon avec une macro au lieu de filtrer.
Concernant la formule que vous m'avez écrite, j'ai un problème lorsque les données à afficher sont nombreuses. En effet, j'aurai au final 50 potences maximum avec 30 opérations par potence max. Lorsque j'applique la formule, à un moment il y aune erreur de données. Je pense que c'est dans la référence de AGREGAT. Pouvez-vous voir où je me trompe dans le fichier annexé? J'y ai indiqué l'endroit problématique en orange sur la feuille "Grand Livre" en ligne 120. Merci d'avance si vous me lisez.
 

Pièces jointes

  • livre journal_v2.1.xlsm
    94.9 KB · Affichages: 32

cgpa

XLDnaute Occasionnel
Merci beaucoup pour l'explication. Cette manière de procéder est également très intéressante: j'aurai matière à progresser (ou tenter, tout du moins...). encore merci.
Bonjour,
Bien que l'option proposée par djidji soit intéressante, je réponds à ta première question sur la colonne P
Afin d'établir des potences uniquement pour les comptes ayant enregistré des opérations, je sélectionne les comptes de la colonne C du livre journal sans doublon c'est le premier programme exécuté lorsqu'on lance à partir du bouton Lance

a+
Bonjour Chalet 53,
J'ai bien avancé grâce à votre aide et vous en remercie. Après l'avoir compris, j'ai adapté le code. J'ai pu trouver pour renvoyer le code à gauche, ça marche.
J'ai pu créer mes 50 potences et le code renvoie bien au bon endroit pour les 50.
Afin de clarifier le document, j'ai ajouté une macro pour effacer le contenu de la feuille sauf les formules (module 3).
Mais là j'ai un petit souci: la macro "essai" que vous avez rédigée supprime le contenu de la dernière ligne de la colonne P jusqu'à la cellule P2. Lorsque j'utilise la macro d'effacement et que je relance la macro Essai, la macro Essai ne renvoie plus correctement les codes dans la colonne P. J'ai bien essayé d'ajouter une petite ligne obligeant de garder du contenu en P2 et P3, mais ça ne marche pas. Pouvez-vous jeter un œil?
Merci beaucoup.
 

Pièces jointes

  • Copie de CGPA livre journal V5.xlsm
    233.6 KB · Affichages: 44

cgpa

XLDnaute Occasionnel
Quelques modifications
Bonjour Chalet53,
Merci pour cette solution. Malheureusement, le code efface les données de la colonne P mais pas celles de la feuille. Or, j'ai besoin de retrouver une feuille vierge (sans effacer les formules ex. B15) car lorsque je relance la macro Essai avec le bouton Lance, celle-ci écrase bien les anciennes données mais laisse apparaître des anciennes données dans les dernières potences si les nouvelles données sont moins nombreuses. Sans trop perdre de temps, connaissez-vous un moyen d'utiliser la formule que j'avais pour effacer tout sauf les formules et combiner avec votre formule d'effacement pour la colonne P? A défaut, je compléterai la macro en ajoutant manuellement les plages de cellules à effacer.
Un tout grand merci pour votre collaboration à la réalisation de ce fichier. Bonne journée,
 

Discussions similaires