Remplir automatiquement selon critère sur feuilles liées

Bonjour à tous. Je suis novice sur excel et je sèche depuis quelques jours sur une question qui n'est peut être pas solvable sur excel. Peut être quelqu'un pourra me donner la solution ou une piste différente pour traiter mon problème.

J'ai une première feuille où j'ai renseigné les différents éléments de plusieurs listes.

La première liste correspond aux catégories des principaux éléments que je renseigne sur la feuille 2.

Les listes suivantes sont les sous catégories de la première liste.

En feuille 2 j'ai renseignés différentes factures donnant les éléments suivants :

identif / date / catégorie / n° / ht / ttc / tva / caratéristiques / sous-catégorie / quantité / ht / ttc / tva élément par élément

Ce que je souhaiterai c'est que sur une autre feuille, par exemple correspondant à une des principales catégorie, soit automatiquement ajouté au fur et à mesure les infos renseigné en feuille 2 mais regroupé sur différents tableaux correspondant aux sous catégories.

J'ai réussi (merci le forum) donc à faire des listes et à pouvoir les appliquer dans ma feuille principale. J'ai compris comment faire une somme total en ne prenant en compte qu'une catégorie.

Maintenant reste à voir si il est possible de faire appeler automatiquement le texte et toutes les autres données dans un tableau d'une autre feuille en prenant en compte uniquement le critère d'une sous-catégorie.

Pour plus de précision en pièce jointe un fichier excel test : https://www.cjoint.com/c/EHFvbGJEHTK

Je pense avoir trouvé une piste sur le net à cette adresse :

Sauf que je ne suis pas familiarisé avec le code et les macro pour l'adapter à mon sujet.

Peut être que cela pourra aider quand même quelqu'un d'autre que moi en attendant.

Merci pour tout !

Bonjour à tous, je n'ai toujours pas solutionné ma question.

J'ai pris exemple sur le fichier trouvé dans le liens cité avant qui présente un exemple assez proche du mien et qui donne la formule suivante :

Private Sub Worksheet_Activate()

End Sub

Ce qui donne veut dire (je ne connais rien au VBA je décrypte avec mes mots désolé) :

On a une une feuille à compléter automatiquement appelée "commande" à partir d'infos données dans une feuille apellée "données".

La première ligne vide tout le contenu déjà présent dans la feuille "commande" de la cellule A7 à H645

li = Sheets("Données").Range("B7").End(xlDown).Row

ligne = 7

Je crois comprendre que cela indique qu'il faut qu'il y ait quelque chose dans la cellule à partir de B7 pour qu'une donnée puisse être extraite et les données extraites apparaitrons à partir de la ligne 7.

For i = 7 To li

End Sub

De la ligne 7 à la fin de la feuille seront insérée les donnée si un "X" est présent en colonne A de la feuille "Données"

Donc dans la feuille commande on verra en A7 les infos de la cellule b7 de "données", en B7 celle de C7 de "données" etc.

Une fois l'opération réalisée la cellule D8 sera la cellule active.

Dites moi si je me trompe mais je crois avoir saisie la chose.

Pour mon exemple j'ai injecté le code suivant :

Private Sub Worksheet_Activate()

End Sub

Mais je me retrouve avec : Erreur d'execution 9 : l'indice n'appartient pas à la sélection.

Une question de cellule fusionnée peut être, je ne sais pas du tout.

Mon fichier test : https://www.cjoint.com/c/EIeosGYaSTK

Bonsoir,

Ton sujet me semble avoir été un peu délaissé, aussi je te signales juste au passage que je ne retrouve pas ce que tu dis vouloir faire dans ton classeur.

Dans ton dernier post, tu parles de macro. Pas de macro (un classeur avec macro doit être enregistré en .xlsm).

En préalable, je crois qu'il faut bien comprendre que ni Excel ni VBA ne fournissent de solutions. Ils te fournissent des outils avec lesquels tu pourras éventuellement réaliser les solutions que tu auras imaginés. La partie essentielle de la recherche de solutions, elle se fait avant de toucher le clavier pour ouvrir l'application. Lorsqu'on sait ce qu'on veut faire et comment, on a un peu plus de chances de le réaliser que si on pose d'abord des données sur une feuilles pour se demander ensuite comment on va pouvoir les manipuler.

A propos de données, je ne vois pas dans ton classeur de données organisées de façon à pouvoir être traitées. Et je ne vois nullement à quoi pourrait s'appliquer la macro que tu cites. Tu indiquais des données en feuille 2 : lorsqu'on ouvre la feuille 2, on voit 2 tableaux distincts et ce qui saute aux yeux de sont des cellules fusionnées. Peut-être des tableaux de présentation mais rien à voir avec des données avec lesquelles on travaille et auxquelles on doit pouvoir accéder en permanence (pas pour les contempler, mais pour les traiter [hors de vue] de façon à produire les résultats que l'on souhaite obtenir dès le démarrage de la conception d'un projet.

Autre élément, la façon dont sont disposées tes listes en feuille 1 dénote que tu n'en conçois pas d'évolution possible dans l'avenir. Après tout, c'est possible, bien que excessivement rare...

Je devrais pouvoir à l'ouverture de ton classeur, sans savoir de quoi il retourne, me faire d'emblée une idée de sa finalité. Mais là je suis incapable d'y voir ce que tu veux faire, quelles activités tu veux gérer ni comment. Tout ce qu'on peut déduire, c'est qu'il y a des factures et des dépenses, des modèles d'états pour les présenter, mais rien pour les travailler, les stocker... et aucun élément donnant une idée de la trajectoire que l'on va suivre.

Cordialement

Ferrand

Merci d'avoir répondu, je désespérai d'avoir un petit retour.

Tout d'abord effectivement le dernier fichier joint ne comportait pas de macro. Le bon fichier est ici : https://www.cjoint.com/c/EIfjr3uQAoK

N'étant pas habitué à excel, je n'ai effectivement peut être pas fourni un fichier très orthodoxe ou je mélange peut être traitement de donnée et fichier de lecture.

Pour récapituler, j'ai :

- Une feuille "historique de facture" : je renseigne au fur et à mesure, les différentes info de mes factures

IDENTIF - DATE - CATÉGORIE - n° FACTURE - TOTAL HT - TOTAL TTC - TOTAL TVA - CARACTÉRISTIQUES - SOUS-CATEGORIES - QUANTITÉ - DÉTAIL HT - DÉTAIL TTC - DÉTAIL TVA

La colonne catégorie est une liste déroulante des différentes catégories : Drone - Unité de tournage - Unité de post-production - Market - Admin - Régie & frais

J'ai aussi une colonne avec une autre liste déroulante des sous-catégories pour chaque grande classe.

En haut de cette feuille j'ai effectivement un petit tableau inséré me permettant de voir rapidement le total des factures et le total par catégorie (j'ai fait pour cela une fonction "somme si" cherchant la mention de la catégorie recherchée).

Cette feuille fonctionne très bien pour moi. J'ai une lisibilité direct sur le total des factures et des principales catégories de dépense. Je peux aussi rapidement retrouver le détail d'une facture.

Maintenant ce que je souhaiterai arriver à faire c'est avoir une feuille par catégorie pour classer chaque sous-catégories dans un tableau séparé. Ce qui me permet d'avoir un suivi de dépense et de gestion de stock pour chaque type d'élément. Ceci renseigné automatiquement sans avoir à le faire manuellement comme je le faisais jusque là.

Par exemple avoir dans une feuille "Drone" un tableau pour les frais, un pour les accessoires, un pour les consommable, etc. Le contenu des tableaux reprenant automatiquement les éléments renseigné dans la feuille principale "historique de facture".

Et en prenant une macro de ce type :

If UCase(Sheets("Historique des factures").Range("J" & i)) = "Drone_Frais" Then

Cells(ligne, 3) = Sheets("Historique des factures").Cells(i, 2)

Je devrai avoir pour chaque ligne contenant la sous-cat "Drone_Frais" un renseignement automatique en colonne "C" de la feuille "Drone" de l'élément prit en "B" de la feuille "historique de facture".

Suis-je assez clair sur mes attentes? J'avais cherché une alternative en me réorientant vers un logiciel de gestion de stock, mais je n'ai rien trouvé qui répondait à mes attentes. Ce fichier excel fonctionnant serait vraiment l'idéal. Le problème vient peut être effectivement de cellules fusionnées pour plus de lisibilité, je ne sais pas du tout.

Merci de m'avoir lu et répondu

Inutile que je reprenne quoi que ce soit de mes propos, s'il n'ont pas suscité la moindre interrogation il n'y a aucune raison pour leur teneur soit perçue maintenant. Ne t'en formalise pas, je peux dire à peu près la même chose d'au moins la moitié des projets qui me passent sous les yeux. Il m'arrive d'ailleurs de fournir des réponses sur des problèmes secondaires ou tout à fait mineurs même si je pense que le projet devrait filer vers la poubelle pour être repensé en totalité. Cependant lorsqu'on en est au démarrage j'évite de contribuer à une réalisation qui m'apparaît irrationnelle, voire absurde... Mais inutile de poursuivre ces divagations philosophiques.

Je pense que la vraie question au stade où tu en est serait de t'interroger sur tes attentes, leur finalité, leur utilité... plutôt que chercher désepérément comment y répondre. Avancer prend un sens quand la destination est bien définie et qu'on a établi que c'est la bonne et qu'on peut se consacrer à construire un itinéraire fiable pour s'y rendre.

Et en prenant une macro de ce type :

If UCase(Sheets("Historique des factures").Range("J" & i)) = "Drone_Frais" Then

Cells(ligne, 3) = Sheets("Historique des factures").Cells(i, 2)

Je devrai avoir pour chaque ligne contenant la sous-cat "Drone_Frais" un renseignement automatique en colonne "C" de la feuille "Drone" de l'élément prit en "B" de la feuille "historique de facture".

Bon courage, tu n'es pas au bout. Il y a beaucoup à analyser dans ces quelques lignes. La "chance" (je considèrerais volontiers comme tel...) est que la première égalité n'ayant aucune chance d'être vérifiée, cela laisse une latitude pour revoir l'ensemble...

Bonne journée

Merci d'avoir prit le temps de me répondre. Je comprend très bien le sens de tes propos, mais mes connaissances d'excel étant limité, cela ne me permet pas de véritablement me les illustrer.

Ce que je veux faire est bien défini : enregistrer au fur et à mesure les différents détails de mes factures afin de les lires tout simplement. Faire afficher le total général et par catégorie de facture pour que j'ai une vision sur les différents secteurs de dépense. Puis regrouper automatiquement dans un second temps les détails des différentes factures dans différents listing quand un critère leur est donné afin que je puisse faire en quelque sorte de la "gestion de stock".

L'utilité est qu'une facture peu avoir différents objets qui n'ont pas de rapport entre eux et j'ai besoin d'avoir une visibilité clair et rapide sur les différentes sous-catégories de dépense. Voilà pour l'importance que tu as mis en avant qui est de définir les attentes avant de se lancer dans un projet.

Pour ce qui est de l'organisation des données afin de bien les traiter, c'est sans doute ma méconnaissance de l'outil d'excel qui fait que je me fourvoie, mais cela me semblait clair (lisible pour moi, mais peut être effectivement erroné pour du traitement). Il faut effectivement que la liste principale puisse être "contemplé" mais aussi traité. Peut être qu'une astuce cacher une colonne qui servirait qu'au traitement résoudrait cette ambiguïté que tu sembles soulever, ainsi qu'éviter les cellules fusionnées (du type feuille 2 b19 à b26 me permettant de n'afficher qu'un titre "2_altigator" et de ne pas le répéter 8x).

En feuille 1 : pas d'évolution prévu, l'important est que les listes existent et soient fonctionnelles. Ta remarque me fait supposer que je ne peux par exemple pas faire d'insertion de ligne pour rajouter un élément ultérieurement.

Enfin pour ce qui est de la macro je sais bien que je ne suis pas au bout de mes peines car si je veux la rendre vraiment fonctionnelle il faudrait que j'apprenne le langage VBA et ne pas faire de l'interprétation en tripatouillant différents code que j'ai pu glaner sur le net.

Bref en me tournant vers un forum, je n'attend pas à ce que l'on me fasse une mise en forme complète (même si cela peu arriver si le problème est simple à traiter). Merci d'avoir donné du temps, je sais ce que ça représente le faisant moi même dans mon domaine qui est la machinerie aérienne et la prise de vue, mais pour l'instant je sais seulement d'après tes propos que je m'y prend mal et qu'il faut que je fasse autrement sans savoir quels sont les données ou mécanisme erronée et alternatives envisageables.

Bon week-end

Je vois que ça avance un peu... Sans m'étendre car pas le temps de tout décortiquer, il est certain qu'en prélevant des bouts de code ici ou là, tu n'aboutiras jamais à des procédures répondant véritablement à tes besoins. Tu peux effectivement t'inspirer de méthodes que tu rencontres mais surtout en analyser la démarche pour voir si elle coincide avec la tienne et comprendre la façon dont elle est bâtie au niveau du code pour au moins éviter des bévues ou des contresens.

Exemple que j'ai cité où tu vérifies si une chaîne en majuscules est égale à une chaîne en minuscules... la réponse est évidemment toujours FAUX (dans le contexte général). Ce procédé est utilisé en cas d'incertitude sur l'usage majuscules/minuscules de termes que l'on doit comparer (il a d'ailleurs ses limites mais c'est le contexte dans lequel on opère qui peut justifier ou non l'usage du procédé.

En ce qui concerne les cellules fusionnées, contrairement à bon nombre d'intervenants, je ne les honnis pas. Cependant si elles peuvent s'avérer utiles à une présentation visuelle, elles n'ont aucune raison d'être dans une base de données que, par définition on n'a pas à regarder (penser le contraire c'est mélanger les genres et se réserver des difficultés croissantes pour la suite).

Si l'objectif est de pouvoir disposer à tous moments de certaines informations, le simple bon sens indique que je ne regarderai simultanément que la surface que mon regard pourra embrasser. Bâtir 50 feuilles à présentation semblable alors qu'à l'évidence je ne pourrai en voir qu'une à la fois, n'apparaît pas particulièrement utile. Une seule, dans laquelle je peux à tout moment afficher ce que j'ai besoin de voir devrait pouvoir être une solution équivalente mais nettement plus économique, me laissant des ressources disponibles pour d'autres types de présentation dont le besoin se fera probablement sentir ultérieurement.

Une base de données doit par contre être principalement fiable, exhaustive dans les informations dont on veut disposer, accessible facilement et rapidement. Ce qui distingue 2 lots de fonctions : alimentation, sources, saisies éventuelles, vérifications, modifiacations d'un côté, procédures d'utilisations de l'autre.

Pour les listes, il s'agit d'un élément utilisable par divers outils, notamment les outils de classement et les outils de recherche. Pour qu'une liste conserve un caractère évolutif, elle doit occuper une colonne et être la seule à l'occuper. Sinon c'est qu'il s'agit d'une liste finie, qui ne changera pas et qui ne peut changer par définition (telle que les mois de l'année, les jours de la semaine, etc.)

Il me semble que si ton objectif est clairement défini, la constitution de la base de données Factures devrait être ta priorité ; champs à recueillir, intitulés des champs, source des informations, modalités d'alimentation... Et que son utilisation pour te fournir des informations en temps utile vient en second car elle est conditionnée par la constitutions de ces informations...

Cordialement

Rechercher des sujets similaires à "remplir automatiquement critere feuilles liees"