Automatiser des données via INDEX

capture d e cran 2024 02 10 a 15 10 42

re,

un essai avec des formules. Par contre les formats de cellules de certaines colonnes renvoient des valeurs dates.

Cordialement

9test.xlsx (162.36 Ko)

Edit :

As tu essayé A partir d'une requête vide en recopiant

let
    Source = Web.Page(Web.Contents("https://basketball.realgm.com/international/boxscore/2023-11-24/Quimper-at-Union-Rennes-Basket/443512")),
    Data4 = Source{4}[Data]
in
    Data4

Bonsoir,

Pas de retour ?

Bonjour, j'avance petit à petit

J'ai une nouvelle requête : je veux classer les chiffres de la première feuille "NM1" en fonction des indicateurs qui se trouvent sur la ligne 1.

J'aimerai savoir quelle équipe joue le plus de possessions, quelle équipe a le %RO le + élevé...

3stats-poule-b.xlsx (140.27 Ko)

Bonjour,

Tu n'a pas répondu à

As tu essayé A partir d'une requête vide en recopiant

sinon, si j'ai bien compris.

11stats-poule-b.xlsx (140.84 Ko)

Je n'ai pas réussi non plus, mais la façon dont je fonctionne avec mac me correspond.

Ce n'est pas tout à fait ça mais c'est tout de même intéressant. J'aimerais que les lignes de mon tableau se rangent dans l'ordre décroissant en fonction de l'indicateur de mon choix (ceux présents sur la ligne 1)

Pour résumer, j'aimerais avoir un classement dynamique pour chaque catégorie statistique. Peut-être faut-il changer la configuration de mon tableau ?

Un essai à tester.

11stats-poule-b.xlsm (163.96 Ko)

Top, ça correspond exactement à ce dont j'ai besoin.

Est ce que tu peux m'expliquer comment tu t'y es pris avec les macros ?

Est ce que je peux toucher à la forme des cellules ? Bordures ? Remplissage ?

J'aimerai pouvoir comprendre le procédé pour le refaire de mon côté et classer les données dans l'autre sens

Merci beaucoup !

re,

Utilise l'enregistreur de macro pour faire le tri à partir d'une colonne du tableau.

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("Tableau2[[#Headers],[% RO]]").Select
    ActiveWorkbook.Worksheets("Feuil2").ListObjects("Tableau2").Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("Feuil2").ListObjects("Tableau2").Sort.SortFields. _
        Add2 Key:=Range("Tableau2[% RO]"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil2").ListObjects("Tableau2").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1").Select
End Sub

Ensuite modifier la macro pour que le tri se fasse sur la colonne sélectionnée. Cela grâce à la variable Col qui correspond à la cellule active

Sub Tri()
Dim Col As String
Col = ActiveCell.Value

    ActiveWorkbook.Worksheets("Feuil2").ListObjects("Tableau2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil2").ListObjects("Tableau2").Sort.SortFields. _
        Add2 Key:=Range("Tableau2[" & Col & "]"), SortOn:=xlSortOnValues, Order _
        :=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil2").ListObjects("Tableau2").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .Apply
    End With
    Range("Tableau2[[#Headers],[" & Col & "]]").Select
End Sub

Sur la feuille qui contient le tableau utiliser Worksheet_BeforeDoubleClick pour sélectionner la colonne voulue avec un double clic sur la ligne de titre.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

   If Not Intersect(Target, Range("Tableau2[#Headers]")) Is Nothing Then    'Si l'on clique sur une cellule de la ligne de titre Alors
        Dim Col As String                                                   'Déclaration d'une variable permettant de cibler la cellule active
        Col = ActiveCell.Value                                              'Affectation de la variable (cellule active)

    ActiveWorkbook.Worksheets("Feuil2").ListObjects("Tableau2").Sort.SortFields.Clear   'On efface le filtre actif
    ActiveWorkbook.Worksheets("Feuil2").ListObjects("Tableau2").Sort.SortFields. _
        Add2 Key:=Range("Tableau2[" & Col & "]"), SortOn:=xlSortOnValues, Order _
        :=xlAscending, DataOption:=xlSortNormal                                         'On filtre la colonne sélectionnée en ordre croissant
    With ActiveWorkbook.Worksheets("Feuil2").ListObjects("Tableau2").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .Apply
    End With

    End If
    Range("A1").Select
End Sub

Il faut remplacer dans la macro originelle

=Range("Tableau2[% RO]")
par
=Range("Tableau2[" & Col & "]")
Col représentant la cellule du titre de la colonne sur laquelle le filtre sera actif

Cordialement

Merci pour ton retour, je vais essayer de trouver du temps pour m'y mettre.

Si cela ne te dérange pas, j'en profite pour te partager une nouvelle requête.

Sur les lignes 8-9-10, un tableau comparatif alimenté par la feuille "contexte poule haute" via la fonction index equiv.

L'objectif est de comparer les données de ce tableau. Pour changer le nom des équipes dans le tableau, on passe par les listes déroulantes en J1 et J4.

Dans chaque catégorie, quand la ligne du bas est supérieure à celle du haut, la cellule apparait en rouge. (Sauf pour BP/poss et EFF.DEF où l'objectif est d'avoir un chiffre le plus bas possible). J'ai obtenu cela avec la fonction "mise en forme conditionnelle".

J'ai essayé de rajouter une deuxième mise en forme conditionnelle sur ces mêmes cellules. J'aimerai dire à excel : si la valeur de cette cellule est la plus grande parmi les celles du tableau de la feuille "contexte poule haute", surligne la en jaune. En gros, si l'équipe est la numéro 1 du championnat dans ce domaine, surligne la cellule en jaune.

Je te joins mon fichier, tu pourras trouver la procédure que j'ai utilisé dans "gérer les règles".

Merci.

4test.zip (700.19 Ko)
Rechercher des sujets similaires à "automatiser donnees via index"