XL 2013 Extraction et dispaching de données

Dicas

XLDnaute Junior
Bonjour à toutes et tous !!!

Le contexte. J'ai une liste d'invités à un repas. J'affecte à chacun d'eux un numéro de table.
Il m'est facile d'établir la liste alphabétique de tous en indiquant le N° de table de chacun.
Mais il est plus difficile d'établir une liste alphabétique "par table" de ces mêmes invités...
C'est donc sur ce point que je butte.
Le fichier joint résume la situation...
Pouvez-vous me prêter main forte ???

Bon appétit !!
 

Pièces jointes

  • Classeur test 2.xlsm
    10.9 KB · Affichages: 26
  • Classeur test 2.xlsm
    10.9 KB · Affichages: 26

CPk

XLDnaute Impliqué
Re : Extraction et dispaching de données

Bonjour, la solution la plus simple est qui ne demande pas de grande connaissance c'est le tableau croisé dynamique.
Je vous met un impr ecran pour info et si cela vous convient, avec le vrai fichier on pourra adapter la situation
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    30.1 KB · Affichages: 27
  • Sans titre.jpg
    Sans titre.jpg
    30.1 KB · Affichages: 26

Dugenou

XLDnaute Barbatruc
Re : Extraction et dispaching de données

Bonjour,
Juste histoire de faire compliqué :)
Mais aussi parce que :
1) le TCD demande à être actualisé alors qu'avec une formule on lit le résultat au fur et à mesure de la saisie
2) avec un TCD on ne maîtrise pas vraiment la mise en forme

En C et D : formules matricielles (à valider en C3 et D3 par ctrl+maj +enter) puis recopier jusque C7 et D7. La formule change pour chaque table : cellule ou est écrit le N° de table et ligne()-xx qui doit donner 1 pour la première ligne de chaque table. On pourrait se passer de la colonne C ou, si on la garde, remplacer la formule de la colonne D par un simple recherchev puisque le N° d'enregistrement semble être unique.

La BD est déclarée en tableau : il suffit d'écrire sur la ligne suivante pour qu'elle s'incrémente toute seule (ou bien se placer dans la dernière cellule remplie et touche tabulation. Permet de ne pas avoir à modifier les formules quand la liste s'allonge.

Cordialement
 

Pièces jointes

  • Dicas.xlsx
    13.3 KB · Affichages: 26

Jocelyn

XLDnaute Barbatruc
Re : Extraction et dispaching de données

Bonjour le Forum,
Bonjour Dicas, CPk, Dugenou :),

pour le fun une formule matricielle qui va triée les nom par table et par ordre alphabéthique

Cordialement
 

Pièces jointes

  • tri alpha.xlsm
    11.7 KB · Affichages: 42

Paf

XLDnaute Barbatruc
Re : Extraction et dispaching de données

Bonjour à tous

un essai macro

Code:
Sub Macro()
 Dim Tableau, i As Long, x As Long, Prec As String
            '** tri de la base par table puis par nom;
            '   adapter nom de feuille, plage et colonne de tri
 With Worksheets("Feuil1") ' feuille contenant la base
    .Range("I2:K" & .Range("I" & Rows.Count).End(xlUp).Row).Sort Key1:=.Range("K3"), _
        Order1:=xlAscending, Key2:=.Range("J3") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
        :=xlSortNormal
 End With
            ' ** fin tri
            
 With Worksheets("Feuil1") ' feuille contenant le tableau à renseigner
 Prec = ""
 Tableau = .Range("I3:K" & .Range("I" & Rows.Count).End(xlUp).Row)

 For i = LBound(Tableau) To UBound(Tableau)
    If Tableau(i, 3) <> "" Then
        If Tableau(i, 3) <> Prec Then
            Prec = Tableau(i, 3)
            x = 2 + 6 * (Tableau(i, 3) - 1)
            MsgBox x
        End If
        x = x + 1
        .Cells(x, 3) = Tableau(i, 1)
        .Cells(x, 4) = Tableau(i, 2)
    End If
 Next
 End With
            
            '** tri de la base par N° enregistrement (ordre initial)
            '   adapter nom de feuille, plage et colonne de tri
 With Worksheets("Feuil1")
    .Range("I2:K" & .Range("I" & Rows.Count).End(xlUp).Row).Sort Key1:=.Range("I3"), _
        Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
        :=xlSortNormal
 End With
            ' ** fin tri
End Sub

A+
 

Dicas

XLDnaute Junior
Re : Extraction et dispaching de données

Bonjour Jocelyne, Paf, CPk et Dugenou !!!
De vos 4 propositions, j'ai surtout apprécié le travail de Paf et en particulier celui de Jocelyne.
J'ai repris chacune de vos idées dans la feuille test et je suis Baba de leur efficacité !!

Pourtant j'ai écarté la solution "macro" de Paf (sans être sur que ce soit définitif !) d'abord, parce qu'elle contraint de relancer la transcription à chaque nouvelle Table et ensuite parce que les macros trop nombreuses sont souvent (en fonction de mon humble expérience...) sources de Pb. Mais surtout parce qu'il m'a été impossible de la transposer dans mon appli. Sans doute trop compliqué pour mon niveau , je me plante.!?...

Pour ce qui est de ma solution préférée, celle de Jocelyne, j'ai deux problèmes.
1- Sur la feuille test; Pour avoir un résultat classé en alpha, je dois rechercher en priorité le nom et dans ce cas j'obtiens bien les noms en alpha mais , je ne sais plus comment retrouver les autres infos de l'enregistrement par une "RECHERCHE". Et si j'applique la même formule, à toutes les cellules de l'enregistrement, les informations se classent chacune soit en alpha soit en numérique et le tout est mélangé donc illisible.

2- Dans mon appli, en faisant abstraction de ce qui précède, même si mon but est de sortir en premier de code "Enreg" j'ai recherché soit de code Enreg, soit le Nom, rien n'y fait, la bonne formule est retranscrite exactement mais reste inerte. Pas d'erreur signalée, seulement la formule affichée...

Je joint un autre fichier test plus proche du réel ...
Je sens que c'est la bonne direction, Pourtant...
Quoi faire ???
 

Pièces jointes

  • COMPOSITION DES TABLES 51 - Copie.xlsm
    88.4 KB · Affichages: 27
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : Extraction et dispaching de données

Bonjour,
1) Jocelyn sans E est un garçon je pense
2) les accolades dans la formule ne doivent pas être saisies au clavier mais obtenues par une façon particulière de valider la formule : au lieu d'appuyer juste sur le touche enter il faut 3 doigts et appuyer simultanément sur ctrl + maj (prov) +enter

Cordialement
 

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz