XL 2019 Automatiser base de données

Bolou

XLDnaute Nouveau
Bonjour,
Dans la base de données ci joint, je cherche à automatiser la répartition des données des colonnes A & B dans les colonnes de H à .....
En effet l'utilisateur mettra les colonnes A&B à jour et la répartition se fera automatiquement.

Avez vous des idées ? Un solution VBA ?

Merci pour vos retours, bien à vous
 

Pièces jointes

  • Repartition par ville.xlsx
    10.4 KB · Affichages: 19

Lolote83

XLDnaute Barbatruc
Salut,
Peut être comme ceci
En H2=SIERREUR(INDEX($B$2:$B$63;PETITE.VALEUR(SI($A$2:$A$63=H$1;LIGNE($A$2:$A$63)-1);LIGNES($1:1)));0) a valider par CTRL+SHIFT+ENTER, puis tirer vers le bas et à droite.
Tout ceci si j'ai bien compris la demande.
@+ Lolote83
 

Bolou

XLDnaute Nouveau
Bonjour Lolote83,
Mon problème est résolu!!! Merci beaucoup

Pour pousser un peu plus loin on pourrait imaginer que la ligne de H1 à ... se mettent automatiquement à jour. J'ai utilisé une combinaison d'excel et de vba pour le faire.

1-Ja'i créé une liste sans doublons
2- un pti code VBA pour les récupérer dans la ligne 1 à partir de H1.

Il y a t-il un moyen plus facile ?

Merci
 

R@chid

XLDnaute Barbatruc
Bonjour @ tous,
je crains que nécessite du VBA si la base de données sera très grande avec le temps.
Deux formules matricielles,
en F1 :
VB:
=SIERREUR(DECALER(Col_Entites;EQUIV(0;NB.SI($E1:E1;Col_Entites);0)-1;;1);"")
@ valider par Ctrl+Maj+Entrée
@ tirer vers la droite

en F2 :
Code:
=SIERREUR(INDEX(Col_Villes;PETITE.VALEUR(SI(Col_Entites=F$1;LIGNE(INDIRECT("1:"&LIGNES(Col_Entites))));LIGNES($2:2)));"")
@ valider par Ctrl+Maj+Entrée
@ tirer vers le bas et vers la droite


Cordialement
 

Pièces jointes

  • Bolou_V1.xlsx
    23.4 KB · Affichages: 6

R@chid

XLDnaute Barbatruc
Bonjour @ tous,
T'es sous Excel 2019, alors pourquoi ne pas faire avec Power Query?
Après l'ajout de nouvelles données dans le tableau source, fais un clic droit dans le tableau vert puis Actualiser.

Voir PJ


Cordialement
 

Pièces jointes

  • Bolou_V2_PowerQuery.xlsx
    20.5 KB · Affichages: 11

Lolote83

XLDnaute Barbatruc
Bonjour R@chid, Amilo,
Une fois de plus, vous avez apporté une solution via Power Query.
Donc, toujours dans ma recherche de compréhension et de progression pour PQ, j'ai regardé vos requêtes mais malheureusement, je ne parviens pas à reproduire ces requêtes.
R@chid, comment fais tu pour passer du tableau source à celui de la requête ci-dessous.
1619280005103.png


J'ai bien essayé de mon coté en utilisant Regrouper par mais je n'arrive pas à aller plus loin, car le résultat ne correspond pas à ce que tu as fait.
1619280073307.png


Pour le reste, ça devrait aller.

Amilo, même question. Je m'étais dit qu'avec 2 exemples, j'y arriverai mais non.
Merci pour vos explications si cela ne vous dérange pas
@+ Lolote83
 

Amilo

XLDnaute Accro
Bonsoir R@chid, Lolote83, le forum,

@R@chid, la question posée par Lolote83 concernait le passage de la Source à l'étape suivante dans l'éditeur Power query
Je mets un tuto ci-après pour les manipulations : Vidéo
ou alors vidéo sous cijoint.com à cette adresse : https://www.cjoint.com/c/KDywBLjH5qT

J'ai simulé uniquement les deux 1ères étapes de R@chid en partant d'une nouvelle Source que j'ai renommée par Source2

Pour ma version de Power query, j'avais procédé de la même manière sauf que j'ai ensuite modifié et ajouté toutes les fonctions manuellement dans la barre de formule sans passer par le ruban.

Cela me permet d'apprendre davantage sur les fonctions Power query

P.S : si vous utilisez la commande "Regrouper Par" du ruban, Power query va créer une étape "Lignes groupées" et avec à sa droite une roue dentée qui vous permet par la suite de double cliquer et de voir plus de détail.
Cependant si des modifications manuelles sont apportées dans la barre de formule, la roue dentée disparait alors.

C'est un moyen de savoir si une modification a été apportée ou non dans la formule initiale.

Cordialement
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Re,
Salut @Amilo
merci de m'avoir expliqué la question de l'ami Lolote83.

Fais grouper, et fais la somme de la colonne des villes (Oui tu vas obtenir une erreur).
2021-04-24_21-58-08.png



Quand tu cliques sur OK tu vas obtenir cette erreur puisque l'on ne peut pas faire une somme de valeurs textes.
2021-04-24_21-59-22.png



Tu n'as qu'à modifier la fonction List.Sum([Villes]) par Text.Combine([Villes],";")
2021-04-24_22-01-38.png



et voilà que c'est fait.



Cordialement
 

Lolote83

XLDnaute Barbatruc
Bonjour R@chid, Amilo,
Merci pour vos réponses et vos captures d'écran qui vont bien me servir.
Amilo, je regarde de ce pas ton tuto.
J'ai vraiment envie d'apprendre PQ, mais quand je vois la gymnastique que vous mettez en œuvre, je vois qu'il me reste encore pas mal de chemin à parcourir.
1000 mercis à vous deux et à bientôt pour un autre exercice que je piocherais à droite ou à gauche dans ce forum pour continuer à progresser.
@+ Lolote83
 

Amilo

XLDnaute Accro
Re,

Dans la même idée que le code ci-dessous de l'étape "Lignes groupées dans la proposition de R@chid

Code:
= Table.Group(Source, {"Entités"}, {{"VillesEnLigne", each Text.Combine([Villes],";"), type text}})

On aurait pu également utiliser ce code :

VB:
= Table.Group(Source, {"Entités"}, {{"VillesEnLigne", each [Villes]}})

Cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 088
Messages
2 085 203
Membres
102 818
dernier inscrit
NeoMaint