Liste automatique conditions intercalées
Bonjour à tous,
Tout d'abord merci de la mise en place de ce site et de votre présence sur ce forum. Vous aidez généreusement de nombreuses personnes et je vous en félicite et remercie. J'ai souvent consulté ce contenu et toujours trouvé la solution à mon problème.
Plusieurs heures de recherche ne m'ont toutefois pas permis de trouver la réponse à ma question. Si elle existe dans un des forums, c'est que je ne l'ai pas trouvé, alors vous pouvez simplement me rediriger si tel est le cas.
J'ai déjà fait quelques tableau Excel avec des formules plus ou moins complexe, mais je ne suis certainement pas à votre niveau. Merci donc de ne pas répondre de manière trop compliquée. J'essayerai d'être de mon côté également simple et précis dans mon explication.
Voilà la situation : je fais parti, en tant que secrétaire, du comité d'une société de musique et nous recevons, après les demandes que j'ai envoyé, de nombreux dons tout au long de l'année. Ces derniers doivent être, selon les statuts de la société, être remerciés dès leur réception. C'est mon travail et l'origine de ma question.
J'ai donc un tableau de la liste des donateurs à qui la demande a été envoyé. Elle se compose de leur nom et adresse, tout ce qu'il faut pour permettre le publipostage Word. Le tableau se terminent avec plusieurs colonnes intitulées "Don 1-2-..." qui sont rempli par le caissier au fur et à mesure que les dons arrivent. Chacune des colonnes est suivie par une colonne intitulée "remercié ?" Voilà un exemple simplifié. Si il l'est trop et que vous ne le comprenez pas, merci de me le dire, j'apporterai des précisions.
J'ai créé dans le même fichier un autre feuille que j'ai intitulé "à remercié". J'aimerais qu'il y apparaisse tous les donateurs à remerciés de manière compact (sans avoir les lignes vides de ceux qui n'auraient pas encore fait de don ou déjà été remerciés) et si possible dans l'ordre alphabétique selon (ce qui est déjà le cas dans la liste des donateurs). Voilà donc le résultat que j'aimerai obtenir de l'exemple que je vous ai monté ci-dessus.
J'ai donc fait ce tableau de manière manuel et j'aimerais qu'il se fasse de manière automatique. J'ai essayé dans mon exemple (dont je met également le fichier-source en pièce jointe de ce post) de représenter tous les cas de figure possible. C'est à dire n'avoir aucune ligne pour ceux qui n'ont encore rien donné ou pour ceux qui auraient déjà été remercié pour leur-s don-s, une ligne avec nom, adresse et don 1 reporté, une ligne avec nom, adresse et don 2 reporté (don 1 par reporté car déjà remercié), une ligne avec nom, adresse et dons reportés (addition des dons non remerciés).
Ma question est donc : Comment dois-je faire pour obtenir cette liste automatique aux conditions intercalées (si c'est la bonne expression) ? Quelle est la formule à utiliser (si il en existe une) ?
Merci d'avance pour votre réponse, je vous souhaite une bonne journée
Salut Lacecho,
C'est possible via Power Query. Ton fichier :
Pour tester : Modifie ton tableau de base comme tu le souhaites, enregistre, puis va sur ta feuille "Résultats" et actualise le tableau. Et là, boum, magie !
"L'inconvénient" c'est qu'il faut enregistrer à chaque fois
EDIT : On pourrait envisager un petit bouton avec une macro qui permet d'enregistrer et d'actualiser directement !
Salut Baboutz,
Merci de ton conseil, je n'avais en effet pas vu l'issue des tableaux croisés dynamiques.
J'ai fait plusieurs essais, mais je n'arrive toujours pas au résultat souhaité. Toutes les notions de tcd restent encore un peu floues, mais je cherche sur internet des aides et je vais encore m'améliorer.
Un problème reste pourtant à mes yeux encore entier et mes recherches ont pour l'heure rien donné. Il s'agit de celui de la double condition pour faire afficher le nom etc. C'est à dire du fait qu'il faut qu'il y ait un don et qu'il soit non remercié. Et qu'ensuite la somme des dons non remerciés apparaissent.
Aurais-tu un contenu où il expliquerait une situation semblable à la mienne ?
Mon problème pourrait aussi peut-être être résolu différemment : j'ai pensé à regarder comment tu avais mis en place le tableau croisé dynamique que tu as rajouté au fichier exemple et envoyé dans ta réponse, mais il s'affiche chez moi comme un tableau normal. Il ne s'actualise donc pas non plus si je fais le test que tu m'as conseillé
Il s'agit peut-être d'un problème de transfert entre ton fichier et ton message, d'anti-virus (mais j'ai essayé de faire que ça n'arrive pas de mon côté, et ça n'a quand même pas réussi) ou je ne sais quoi. Peut-être donc que si j'obtenais le fichier avec la mise en place du tcd, je pourrais la recopier pour mon cas et réussir à obtenir ce que je souhaite. Ou encore, tu pourrais m'expliquer toutes les différentes étapes de mise en place pour obtenir le tcd souhaité.
Dans tous les cas, je ne veux pas abuser de la générosité que tu as à nous aider, moi et tous ceux qui lirait ce forum pour trouver la solution à un problème similaire au mien. Je te remercie donc du temps que tu prends pour cela et ne te demande pas de faire plus que ce qui est possible pour ce que peut-être je peux trouver par moi-même.
Encore un grand merci et bonne journée
Bonjour Lacecho,
Ce n'est pas un TCD mais un Power Query, c'est encore différent !
Voici les étapes à réaliser sur ton fichier pour parvenir au même résultat que moi :
- Données -> Nouvelle requête -> À partir d'un fichier -> À partir d'un classeur -> Tu choisis dans ton répertoire le même classeur que celui sur lequel tu es actuellement, c'est à dire ton fichier Excel avec ta base de données de dons de ton comité de musique -> Tu sélectionnes ton tableau contenant ta base de donnée -> Tu cliques sur modifier en bas à droite
- Ensuite tu vas dans Ajouter une colonne -> Ajouter une colonne personnalisé
- Là, tu rentres le nom de colonne que tu veux, et tu rentres cette formule (Attention, il faut mettre le bon nom des colonnes, pas juste copier/coller) :
=if [Don 1]<>null and [Don 2] <>null and [#"Remercié ?"] =null and [#"Remercié ?2"] =null then [Don 1] & ", " & [Don 2] else if [Don 1] <> null and [#"Remercié ?"] = null then [Don 1] else if [Don 2]<> null and [#"Remercié ?2"] =null then [Don 2] else null
- Tu sélectionnes les colonnes que tu veux supprimer, puis clique droit -> Supprimer
Tu dois arriver à ce résultat :
- Là, il ne te reste qu'à filtrer sur la colonne 'Don(s) à remercier' en cliquant sur la flèche du haut à droite et de désélectionner la case correspondant à null, tu obtiens :
- C'est finit ! Il ne te reste plus qu'à cliquer sur Fermer et charger.
Voilà le tuto est finit !
Pour actualiser cette table il suffit d'enregistrer le classeur (Ctrl+s) puis de cliquer sur Données -> Actualiser Tout
Dis moi si tu y arrives !
Bonjour Baboutz,
Merci beaucoup pour ton aide, j'ai réussi à obtenir le tableau automatique souhaité.
Mon tableau avait en réalité quatre colonnes de dons, ce qui n'a pas facilité les choses pour la mise en place de la formule. Mais essai et recherche, le tout à partir de ta formule, ont porté fruit et j'ai aussi réussi à inscrire le code pour la somme des dons non remerciés.
Mon problème est donc réglé, merci encore pour ton tuto super bien fait.
Je mets quand même ma formule finale à disposition pour les lecteurs qui pourraient s'en inspirer pour un problème similaire au mien :
if [#"2020-2021#(lf)Don 1 "]<>null and [#"2020-2021#(lf)Don 2"] =null and[#"2020-2021 #(lf)Don 3 "]=null and [#"2020-2021 #(lf)Don 4 "] = null and [#"Remercié 1 ?"] =null and [#"Remercié 2 ?"] =null and [#"Remercié 3 ?"] =null and [#"Remercié 4 ?"] = null then [#"2020-2021#(lf)Don 1 "]
else if [#"2020-2021#(lf)Don 1 "]<>null and [#"2020-2021#(lf)Don 2"] <>null and[#"2020-2021 #(lf)Don 3 "]=null and [#"2020-2021 #(lf)Don 4 "] = null and [#"Remercié 1 ?"] =null and [#"Remercié 2 ?"] =null and [#"Remercié 3 ?"] =null and [#"Remercié 4 ?"] = null then [#"2020-2021#(lf)Don 1 "] + [#"2020-2021#(lf)Don 2"]
else if [#"2020-2021#(lf)Don 1 "]<>null and [#"2020-2021#(lf)Don 2"] <>null and[#"2020-2021 #(lf)Don 3 "] <> null and [#"2020-2021 #(lf)Don 4 "] = null and [#"Remercié 1 ?"] =null and [#"Remercié 2 ?"] =null and [#"Remercié 3 ?"] =null and [#"Remercié 4 ?"] = null then [#"2020-2021#(lf)Don 1 "]+[#"2020-2021#(lf)Don 2"]+[#"2020-2021 #(lf)Don 3 "]
else if [#"2020-2021#(lf)Don 1 "]<>null and [#"2020-2021#(lf)Don 2"] <>null and[#"2020-2021 #(lf)Don 3 "]<>null and [#"2020-2021 #(lf)Don 4 "]<>null and [#"Remercié 1 ?"] =null and [#"Remercié 2 ?"] =null and [#"Remercié 3 ?"] =null and [#"Remercié 4 ?"] = null then [#"2020-2021#(lf)Don 1 "]+[#"2020-2021#(lf)Don 2"]+[#"2020-2021 #(lf)Don 3 "]+[#"2020-2021 #(lf)Don 4 "]
else if [#"2020-2021#(lf)Don 1 "]<>null and [#"2020-2021#(lf)Don 2"] <>null and[#"2020-2021 #(lf)Don 3 "] = null and [#"2020-2021 #(lf)Don 4 "] = null and [#"Remercié 1 ?"] <>null and [#"Remercié 2 ?"] =null and [#"Remercié 3 ?"] =null and [#"Remercié 4 ?"] = null then [#"2020-2021#(lf)Don 2"]
else if [#"2020-2021#(lf)Don 1 "]<>null and [#"2020-2021#(lf)Don 2"] <>null and[#"2020-2021 #(lf)Don 3 "] <> null and [#"2020-2021 #(lf)Don 4 "] = null and [#"Remercié 1 ?"] <>null and [#"Remercié 2 ?"] <>null and [#"Remercié 3 ?"] =null and [#"Remercié 4 ?"] = null then [#"2020-2021 #(lf)Don 3 "]
else if [#"2020-2021#(lf)Don 1 "]<>null and [#"2020-2021#(lf)Don 2"] <>null and[#"2020-2021 #(lf)Don 3 "] <> null and [#"2020-2021 #(lf)Don 4 "] <> null and [#"Remercié 1 ?"] <>null and [#"Remercié 2 ?"] <>null and [#"Remercié 3 ?"] <>null and [#"Remercié 4 ?"] = null then [#"2020-2021 #(lf)Don 4 "]
else if [#"2020-2021#(lf)Don 1 "]<>null and [#"2020-2021#(lf)Don 2"] <>null and[#"2020-2021 #(lf)Don 3 "] <> null and [#"2020-2021 #(lf)Don 4 "] = null and [#"Remercié 1 ?"] <>null and [#"Remercié 2 ?"] = null and [#"Remercié 3 ?"] =null and [#"Remercié 4 ?"] = null then [#"2020-2021#(lf)Don 2"]+[#"2020-2021 #(lf)Don 3 "]
else if [#"2020-2021#(lf)Don 1 "]<>null and [#"2020-2021#(lf)Don 2"] <>null and[#"2020-2021 #(lf)Don 3 "] <> null and [#"2020-2021 #(lf)Don 4 "] <> null and [#"Remercié 1 ?"] <>null and [#"Remercié 2 ?"] =null and [#"Remercié 3 ?"] =null and [#"Remercié 4 ?"] = null then [#"2020-2021#(lf)Don 2"]+[#"2020-2021 #(lf)Don 3 "]+[#"2020-2021 #(lf)Don 4 "]
else if [#"2020-2021#(lf)Don 1 "]<>null and [#"2020-2021#(lf)Don 2"] <>null and[#"2020-2021 #(lf)Don 3 "] <> null and [#"2020-2021 #(lf)Don 4 "] <> null and [#"Remercié 1 ?"] <>null and [#"Remercié 2 ?"] <>null and [#"Remercié 3 ?"] =null and [#"Remercié 4 ?"] = null then [#"2020-2021 #(lf)Don 3 "]+[#"2020-2021 #(lf)Don 4 "]
else nullCette formule a été plusieurs fois testées et a toujours fonctionné, pour autant qu'il n'y ait pas par exemple de don 3 et pas de don 2 (les dons doivent être remplis dans l'ordre croissant, sans vide entre eux)
Merci à tous et bonne journée
Salut !
Belle formule ahah ! C'est super que tu ai réussi, si tu as bien compris le principe, tu pourras le réutiliser à l'avenir
Bonne fêtes de fin d'année,
Baboutz