Microsoft 365 Excel : Récuperer les données de différents tableaux dans un seul tableau avec liste déroulante.

Hugo_CAN

XLDnaute Nouveau
Bonjour la communauté,

Sur une feuille excel , j'essaie de faire un tableau pouvant récuperer toutes les données des autres tableaux. Je m'explique

J'ai par exemple 3 onglets ''Page 1'' - ''Page 2'' - ''Page 3'' Dans chacunes de ses pages , il y a 4 tableaux nommaient :
1655148267654.png


Pour l'onglet page 1 :
Page1_Table1
Page1_Table2
Page1_Table3
Page1_Table4

Pour l'onglet page 2 :
Page2_Table1
Page2_Table2
Page2_Table3
Page2_Table4

Pour l'onglet page 3 :
Page3_Table1
Page3_Table2
Page3_Table3
Page3_Table4

J'ai un onglet ''Resume'' avec le même tableau

1655148231638.png


J'ai 2 listes déroulantes. Quand je choisis la Page 1 et Table 1 , je voudrais voir apparaitre les données de la Page 1 table 1. Si je veux voir les données de la Page 3 et Table 2 , je voudrais pouvoir voir ces données là.

J'avais déjà réussi a faire quelque chose de similaire il y a quelques temps mais ca fonctionnait avec une référence.

Quelqu'un serait-il comment procéder. Je mets aussi en attaché le fichier exemple.

Un grand merci !
 

Pièces jointes

  • Exemple.xlsx
    30.5 KB · Affichages: 6

goube

XLDnaute Accro
Bonsoir,
Une proposition avec power query, une cellule tampon en K7:L7 et un brin de VBA pour actualiser la requête.
A tester.
Cordialement.
EDIT
Sans cellule tampon
 

Pièces jointes

  • Exemple-1.xlsm
    45.9 KB · Affichages: 4
Dernière édition:

Hugo_CAN

XLDnaute Nouveau
Bonsoir,
Une proposition avec power query, une cellule tampon en K7:L7 et un brin de VBA pour actualiser la requête.
A tester.
Cordialement.
EDIT
Sans cellule tampon
Bonjour, merci pour la proposition.

Je sais utiliser VBA avec excel , par contre je n'ai jamais touché encore à power query. Je vais aller chercher de l'info dessus. Auriez-vous un lien qui pourrait expliquer comment power query pourrait fonctionner dans mon cas ? Ou comment vous avez procéder un minimum ? J'irais par la suite trifouiller la dedans. J'apprends sur le tas en fonction de ce que j'ai besoin.

Ca a l'air d'être bien idéale en tout cas , beaucoup plus que de mettre des formules dans chaque cells qui vont alourdir le tout. Ca ressemble comme une base de donnée mysql

Merci !
 

job75

XLDnaute Barbatruc
Bonsoir Hugo_CAN,

Voyez le fichier joint et ces macros dans le code de la feuille "Resume" :
VB:
Private Sub Worksheet_Activate()
Worksheet_Change [A1] 'lance la macro
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
With [Resume] 'tableau structuré
    .Cells(1) = " " 'si le tabkeau est vide
    .Delete xlUp 'RAZ
    If [K6] <> "" And [L6] <> "" Then Evaluate(Replace([K6] & "_" & [L6], " ", "")).Copy .Cells(1)
End With
Application.EnableEvents = True 'réactive les évènements
End Sub
Elles se déclenchent quand on valide ou modifie une cellule quelconque ou qu'on active la feuille.

Edit : salut goube, pas rafraîchi.

A+
 

Pièces jointes

  • Exemple(1).xlsm
    39.7 KB · Affichages: 5
Dernière édition:

goube

XLDnaute Accro
Re,
Bonsoir job75,

Des explications pour la mise en œuvre et un peu de lecture
http://www.excel-formations.fr/Trucs_astuces/PQ00.php
https://www.developpez.net/forums/b...ve-efficace-filtre-avance-dynamique-surcroit/
https://www.developpez.net/forums/blog.php?u=27262&blogcategoryid=612

Onglet Données, Obtenir des données, A partir d’autres sources, Requête vide
Ouverture de la fenêtre Power Query
Pour afficher tous les tableaux présents dans le classeur
Dans la barre de formule saisir = Excel.CurrentWorkbook()
Pour n’afficher que les tableaux concernés
Sélectionner la colonne Name, Filtrer sur Filtres textuels, Commence par, Page
Cliquer sur l’icone à droite de la colonne Content pour développer toutes les colonnes, décocher Utiliser le nom de la colonne …
Fichier, Fermer et charger, Fermer et charger dans, Ne créer que la connexion
Sélectionner l’onglet Resume, Nommer la cellule K6 _Page, la cellule L6 _Table
Sélectionner l’onglet Setup, supprimer les espaces en utilisant Accueil, Edition, Rechercher et sélectionner, Remplacer, Rechercher, saisir un espace, Remplacer par, ne rien saisir, OK
Rechercher, saisir PAGE, Remplacer par, saisir Page, OK,
Onglet Resume, Modifier les valeurs des deux listes déroulantes (K6 & L6), Sélectionner K6, Onglet données, Récupérer et transformer des données, A partir d’un tableau ou d’une plage, Clic droit sur la ligne 1, Drill-down
Fichier, Fermer et charger, Fermer et charger dans, Ne créer que la connexion
Onglet Resume, Sélectionner L6, Onglet données, Récupérer et transformer des données, A partir d’un tableau ou d’une plage, Clic droit sur la ligne 1, Drill-down
Fichier, Fermer et charger, Fermer et charger dans, Ne créer que la connexion
Dans la fenêtre Power Query sur la droite de l’écran les différentes requêtes s’affichent
Ouvrir la Requête1 par un double clic, Sélectionner la dernière colonne Name, la filtrer sur Page1_Table1 par exemple
Onglet Acceuil, Requête, Editeur avancé,
Sur la ligne #"Lignes filtrées1" = Table.SelectRows(#"Content développé", each ([Name] = "Page1_Table1"))
Remplacer "Page1_Table1" par Text.From(_Page)&"_"&Text.From(_Table)
Ce qui donne
#"Lignes filtrées1" = Table.SelectRows(#"Content développé", each ([Name] = text.From(_Page)&"_"&Text.From(_Table)))
Sélectionner la colonne Name, Clic droit, Supprimer
Fichier, Fermer et charger, Fermer et charger
Onglet Développeur, Visual Basic, Dans la Sheet(Resume), insérer la macro suivante :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("_Page, _Table")) Is Nothing Then
ActiveWorkbook.RefreshAll
End If
End Sub


Onglet Resume, supprimer les lignes 8 à 20, Se positionner sur J8, Sélectionner Requêt1, Clic droit, Charger dans, Tableau, Feuille de calcul existante
Sélectionner une cellule du tableau, Onglet Conception de table, Décocher bouton de filtre, Données de tableau externe, Propriétés, Décocher Ajuster la largeur des colonnes
Sauvegarder le classeur en .xlsm

Bonne lecture
Cordialement
 

Hugo_CAN

XLDnaute Nouveau
Un grand merci , je vais lire tout cela et en apprendre plus sur power query. Ca devrait aider à moins allourdir les fichiers excels.

Merci aussi Job75 , je vais commencer par la méthode power query et voir par la suite si cela fonctionne bien.

Merci pour votre réactivité.
 

Discussions similaires

Réponses
1
Affichages
448

Statistiques des forums

Discussions
315 097
Messages
2 116 187
Membres
112 679
dernier inscrit
Yupanki