Question pour un champion VBA nécessaire ou quelques formules ?

Fermé
NanoDev Messages postés 13 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 27 mai 2019 - Modifié par NanoDev le 27/02/2017 à 21:06
yg_be Messages postés 23338 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 novembre 2024 - 27 févr. 2017 à 23:27
Bonjour à tous et merci d'avance de vos réponses,

je me pose la question de savoir comment résoudre le problème suivant afin d'éviter de me lancer dans du codage pour rien :

Je dispose d'un classeur, la première feuille contient une balance (tronquée), une colonne compte, un libellé et un solde positif ou négatif.


La deuxième feuille, un plan comptable comprenant, une colonne d'identifiant de groupe de compte ( par exemple les comptes 701x correspondent au groupe 1), une colonne compte et une colonne libellé


La troisième feuille un compte de résultat comprenant une colonne libellé, une colonne groupe, une colonne résultat par exemple



Lien du fichier excel :

https://dl.dropboxusercontent.com/u/81244476/Reporting%20Balance%20Bijou.xlsm


La question :

Je voudrais alimenter une cellule de mon compte de résultat correspondant au numéro de groupe de compte qui soient identiques dans le compte de résultat et dans le plan comptable, sachant que la plage des cellules des valeurs à additionner se trouvent dans la balance, et que pour chaque identifiant de groupe il va falloir aller chercher le compte associé dans le plan comptable et qui soit identique dans la balance, donc comparer les numéros de compte du plan comptable et de la balance et si ils sont identiques, on additionne.

En clair, pour chaque compte appartenant au groupe 1 du compte de résultat, je vais rechercher tous les comptes correspondant dans le plan comptable du même groupe et calculer le total dans les comptes se trouvant dans la balance, comptes qui sont identiques à ceux du plan comptable correspondant au même numéro de groupe.

Pour l'instant, j'ai simplifié en faisant ce type de formule qui fonctionne mais sans noton de groupe, là je bloque, je n'y parviens pas.

=SOMME.SI.ENS(Connexion!$C:$C;Connexion!$A:$A;"=704*")

Mais si un utilisateur lambda souhaite modifier le calcul, il serait plus simple qu'il ajoute un code dans le compte de résultat et un autre dans le plan comptable.

Par ailleurs, la balance est importée directement via une connexion ODBC d'une base SQL Serveur, donc on ne peut pas indiquer les correspondances de d'identifiant de groupe à ce niveau puisque les comptes changent, et cela changerait l'ordre des groupes.

Voilà si vous avez une idée, je suis preneur, merci d'avance ! J'aimerai bien éviter de devoir réviser et tout coder en VBA !
A voir également:

2 réponses

yg_be Messages postés 23338 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 novembre 2024 Ambassadeur 1 551
27 févr. 2017 à 22:08
bonsoir, moi j'essayerais en ajoutant une quatrième colonne dans la première feuille, contenant une formule qui va chercher le numéro de groupe dans la deuxième feuille.
et ensuite j'utiliserais somme.si, dans la troisième feuille, en utilisant les données des troisième et quatrième colonnes de la première feuille.
1
NanoDev Messages postés 13 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 27 mai 2019
27 févr. 2017 à 22:19
Mais c'est mon codeur préféré qui me répond, encore !!!
Je vais suivre vos conseils à lettre et vous dire si j'y parviens comme ça !
0
NanoDev Messages postés 13 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 27 mai 2019
27 févr. 2017 à 23:11
D'abord, merci, j'ai oublié de vous remercier pour votre réponse, c'est pas bien !

Donc dans la première feuille, j'ai inclus la formulle suivante que j'ai collé à la droite du tableau, la formule fait donc partie intégrante du tableau et devrait se dupliquer lors des changements ( ce que je vais tester demain) :

=SI(RECHERCHEV(A3;'PLAN COMPTABLE'!A3:$B$233;2);RECHERCHEV(A3;'PLAN COMPTABLE'!A3:$B$233;2);"")

Et ça marche en remplacant le nom automatique du tableau, sachant qu'il sagit d'une source de données.

Dans la troisième feuille, c'est à dire le compte de résultat,la formule suivante pour alimenter le résultat :

=SOMME.SI(Connexion!$D:$D;'Commpte de résultat'!$B$7;Connexion!$C:$C)

Et ça marche !!!!

Je ne sais pas qui vous êtes, mais ce qui est certain, c'est que vous êtes une sacré pointure et ne me faites pas croire que vous n'êtes pas pro !

Je ne sais pas comment vous remercier !

Je vais maintenant pouvoir faire d'autres tests, en réalité, je vais avoir besoin de créer plusieurs groupes car quelque fois le solde de un ou plusieurs comptes vient se soustraire
notamment pour la partie bilan. Mais je pense pouvoir m'en sortir en faisant un groupe + et un groupe -.

Cette solution si elle marche, va grandement simplifier le paramétrage des soldes intérmédaires de gestion ou même des tableaux de bord personnalisés et ce sera à la porté d'un comptable sans notions avançées en formules, ce qui est l'objectif.

Merci encore, vraiment sympa et j'aimerai beaucoup pouvoir vous contacter en MP. J'ai quelque fois des problèmes sur SQL que je préfère déléguer, si jamais vous êtes intéressé... Je suis preneur, je bosse sur la suite comptable et finançière de Sage 100 sur SQL serveur, Multi Devis Entreprise sur SQL serveur également et nous devrions évoluer
vers une autre solution toujours sur SQL.

Merci encore !
0
yg_be Messages postés 23338 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 novembre 2024 1 551 > NanoDev Messages postés 13 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 27 mai 2019
27 févr. 2017 à 23:27
ce fut un plaisir, le problème était décrit suffisamment clairement, la réponse n'était pas loin de la question!
la solution aurait été plus simple si les infos de la deuxième feuille étaient présentes dans la base de données, mais cela n'est peut-être pas possible.
je donne un petit coup de main à l'occasion sur le forum, vraiment pas possible de m'engager à plus.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 858
27 févr. 2017 à 22:32
Bonsoir à tous,

Si ce que tu veux faire, en 'COMPTE DE RESULTAT'!C7, c'est la somme des soldes de Balance dont les comptes ont pour groupe, dans PLAN COMPTABLE, la valeur de 'COMPTE DE RESULTAT'!B7, alors tu peux saisir la formule matricielle en 'COMPTE DE RESULTAT'!C7 :
=SI(B7<>"";SOMME((TRANSPOSE(SI(GROUPE=B7;COMPTE;0))=Tableau_SERVEURT420_BIJOU[CG_Num])*Tableau_SERVEURT420_BIJOU[SOLDE]);"")

Cordialement
1