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