Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Extraction d'informations sur différents onglets en partant d'une base de données

MBax

XLDnaute Nouveau
Bonjour,
J'ai un tableau excel avec les colonnes suivantes : ACCESSOIRE, N. ARTICLE, TYEP DE PRODUIT, MODELE 1 (dans lequel il y a oui ou case vide si le modèle est compatible avec l'accessoire), MODELE 2 (dans lequel il y a oui ou case vide si le modèle est compatible avec l'accessoire), MODELE 3 (dans lequel il y a oui ou case vide si le modèle est compatible avec l'accessoire), TARIF B2B, REMISE B2B, TARIF HT B2C, TARIF TTC BC2.

J'aimerais extraire certaines infos, pour créer un onglet par modèle et par type de tarif (MODELE 1 B2B, MODELE 2 B2B, etc), qui puisse remplir automatiquement les colonnes ACCESSOIRES, N. ARTICLE, TARIF PERTINENT, en fonction de la compatibilité avec le modèle (l'accessoire doit donc s'afficher si on a "oui" dans la colonne MODELE.

L'objectif est de créer des fiches tarifaires.

Vous trouverez ci-joint le fichier que j'aimerais réaliser : https://www.cjoint.com/c/NJshSlMfXwr

Dans l'onglet 1 la base de données, dans l'onglet 2 et 3, ce que j'aimerais créer comme fiche tarifaire. J'aimerais que les lignes où j'ai mis "auto" puissent être complétées automatiquement (avec une formule si possible et sans macro).

Ma version excel est Microsoft 365 Apps for business.

Pouvez-vous m'aider ?

J'espère que ma demande est claire.
Merci d'avance et bonne journée,
Manuela
 

Pièces jointes

  • Demande fiche tarifaire.xlsx
    48.9 KB · Affichages: 13
Solution
Bonjour à toutes & à tous, bonjour @MBax et bienvenue sur le forum.
J'ai tenté quelque chose, tu me diras ce que tu en penses.

J'ai transformé les données de ta feuille "Base de données" en un tableau structuré nommé "BdD" et je lui ai ajouté une colonne vide à droite (j'en ai besoin pour avoir une colonne vide en 3ème colonne de tes fiches tarifaires).

Ensuite, j'ai utilisé des formules matricielles dynamiques pour filtrer les données qui conviennent à chaque catégorie de chaque modèle.

Ces formules on l'avantage d'être dynamiques, leurs résultats reflètent immédiatement tout changement dans la BdD, et de renvoyer le nombre de lignes et de colonnes désirées (une seule formule pour n lignes et p colonnes)
L'inconvénient, si...

dysorthographie

XLDnaute Accro
Bonjour,
Un filtre élaboré (ou filtre avancé) dans Excel permet d'extraire des données en fonction de critères plus complexes que ceux proposés par le filtre automatique. Il est utile pour effectuer des sélections personnalisées sur des tables de données.

Voici comment procéder pour appliquer un filtre élaboré à votre cas (sans formule complexe, mais directement dans Excel avec des fonctionnalités intégrées) :

Étapes pour appliquer un filtre élaboré :

1. Préparer les critères de filtrage :

Sur une nouvelle feuille ou en haut de votre tableau, créez une plage de critères.

Copiez les en-têtes de colonnes sur lesquelles vous souhaitez appliquer le filtre (par exemple : "MODELE 1", "TARIF B2B", etc.).

Sous chaque en-tête, spécifiez les conditions. Par exemple, pour filtrer les accessoires compatibles avec le MODELE 1, vous pouvez écrire =oui sous la colonne "MODELE 1".



2. Appliquer le filtre élaboré :

Sélectionnez votre tableau de données (toutes les colonnes et lignes concernées).

Allez dans Données > Avancé (dans la section Trier et Filtrer).

Dans la boîte de dialogue qui s'ouvre :

Sélectionnez Filtrer la liste sur place si vous voulez filtrer les résultats directement dans votre tableau d'origine, ou Copier vers un autre emplacement pour créer une nouvelle liste filtrée ailleurs dans votre classeur.

Indiquez la plage de critères que vous avez préparée (l'emplacement des en-têtes avec vos conditions).

Si vous choisissez Copier vers un autre emplacement, spécifiez la cellule où vous souhaitez voir les résultats.


Cliquez sur OK.



3. Résultat :

Excel va filtrer les données en fonction des critères que vous avez définis. Si vous avez opté pour l'option de copie vers un autre emplacement, vous aurez une nouvelle table avec uniquement les lignes qui correspondent aux critères (par exemple, seulement les accessoires compatibles avec "MODELE 1" et les tarifs B2B).




Exemples de critères pour votre situation :

Pour extraire les accessoires compatibles avec "MODELE 1" et afficher les tarifs B2B, vous pouvez préparer une plage de critères comme ceci :

Dans cet exemple :

MODELE 1 = oui signifie que vous ne souhaitez que les accessoires compatibles.

TARIF B2B > 0 signifie que vous ne voulez que les accessoires qui ont un tarif B2B supérieur à zéro.


Avantages du filtre élaboré :

Vous pouvez combiner plusieurs critères en fonction de vos besoins (par exemple, différents modèles et types de tarif).

Il est plus flexible que le filtre automatique standard et peut être réutilisé rapidement en ajustant simplement les critères.


Cela peut être une bonne solution pour extraire les informations que vous cherchez sans avoir à écrire des formules complexes si vous êtes plus à l'aise avec les fonctionnalités intégrées d'Excel.
 

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour à toutes & à tous, bonjour @MBax et bienvenue sur le forum.
J'ai tenté quelque chose, tu me diras ce que tu en penses.

J'ai transformé les données de ta feuille "Base de données" en un tableau structuré nommé "BdD" et je lui ai ajouté une colonne vide à droite (j'en ai besoin pour avoir une colonne vide en 3ème colonne de tes fiches tarifaires).

Ensuite, j'ai utilisé des formules matricielles dynamiques pour filtrer les données qui conviennent à chaque catégorie de chaque modèle.

Ces formules on l'avantage d'être dynamiques, leurs résultats reflètent immédiatement tout changement dans la BdD, et de renvoyer le nombre de lignes et de colonnes désirées (une seule formule pour n lignes et p colonnes)
L'inconvénient, si c'en est un, c'est qu'il leur faut suffisamment de place pour s'étendre; faute de quoi elles renvoient l'erreur "#PROPAGATION".
Comme il nous faut une formule par Catégorie d'accessoires et que l'on ne maitrise pas le nombre de lignes nécessaires, il arrivera que tu sois obligée d'insérer des lignes sous les formules pour qu'elles puissent s'étendre.

Les formules dépendent
  • de la cellule "$A$1" qui contient le nom du Modèle (j'ai adapté le format pour que l'on ne saisisse que ce nom, et que cela affiche "Formulaire tarifaire [nom du modèle]"),
  • et de la Catégorie située sur la ligne du dessus.
Elles sont toutes identiques on peut faire un copier collage spécial formule sans problème.
La formule avec la catégorie en $A20 :
Enrichi (BBcode):
=LET(liste;FILTRE(INDEX(BdD;SEQUENCE(LIGNES(BdD));{1.2.11.7.9.10.8});(INDIRECT("BdD["&$A$1&"]")="oui")*(MAJUSCULE(BdD[TYPE DE PRODUIT])=$A20);{"-"."-".""."-"."-"."-"."-"});liste)
Le nom des catégories doit être identiques (à la casse près) au catégories trouvées dans la BdD.
J'utilise la fonction index pour réorganiser les colonnes que l'on filtre.

J'ai provoqué une erreur "#PROPAGATION" pour que tu vois qu'en insérant des lignes sous la formule cela s'arrange tout seul.

Voir la pièce jointe
À bientôt
 

Pièces jointes

  • Demande fiche tarifaire AtTheOne.xlsx
    63.3 KB · Affichages: 4
Dernière édition:

MBax

XLDnaute Nouveau
Merci @AtTheOne !
C'est fait. J'ai aussi une petite question supplémentaire : comment puis-je faire si j'ajoute des colonnes dans la base de données, qui devront s'afficher aussi dans les fiches de songlets suivants ?

Merci d'avance et bonne journée,
 

AtTheOne

XLDnaute Accro
Supporter XLD
Bonjour les noctambules, bonjour @MBax
Merci, mais c'est le post#3 qu'il faut marquer

Maintenant, si ta base évolue, ce sont les parties de la formule
{1.2.11.7.9.10.8}
et
{"-"."-".""."-"."-"."-"."-"}
qu'il faut adapter
1 2 11 7 9 10 8 sont les colonnes qu'il faut ramener (dans cet ordre)
"-" "-" "" "-" "-" "-" "-" sont les chaînes renvoyées si aucun enregistrement ne correspond aux critères du filtre
La colonne 11 est la colonne vide que j'ai ajouté dans ta BdD

Si par exemple ta base comporte 16 colonnes, on en ajoute une 17ème vide.
Si tu dois renvoyer 10 colonnes mettons
5, 3, 8, vide, 7, 9, 10, 2, 1, 6
Tu utilises
{5.3.8.17.7.9.10.2.1.6}
et
{"-"."-"."-".""."-"."-"."-"."-"."-"."-"}
Normalement ça fonctionne
Là je suis sur mon téléphone, pas possible de vérifier.
Fais des essais en ajoutant et mélangeant les colonnes... Ça sera sans doute plus clair.
À bientôt
 

MBax

XLDnaute Nouveau
ça fonctionne parfaitement, merci beaucoup @AtTheOne !

Bonne journée
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…