XL 2016 Trie afin de remplir automatiquement un Tableau

  • Initiateur de la discussion Initiateur de la discussion Phoenix23
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Phoenix23

XLDnaute Occasionnel
Bonjour à toutes et tous.
Dans le fichier ci-joint je souhaiterai réaliser un pour la feuille "Tableau", par Dates, Lieux, Noms.
Les explications sse trouvent dans la feuille Tableau du Fichier ci-joint.
Si toutefois quelqu'un pouvait me venir en aide.
D'avance Merci
Cordialement
 

Pièces jointes

Bonjour,
Tu peux essayer en B3
=SOMMEPROD(('2020'!$F$3:$F$28)*(MOIS('2020'!$C$3:$C$28)=LIGNE()-2)*('2020'!$D$3:$D$28=B$2))
Et étendre ça sur B3:K14 à condition de virer ces cellules fusionnées en 2020!C4 & 2020!D4 et reporter l'information sur chaque cellule. Sinon ça me paraît ingérable.
D.
Edit: Ou si tu veux vraiment ne pas avoir de répétition apparente sur les valeurs, mettre une MFC pour mettre en caractères blancs ou gris clair les cellules dont la précédente a la même valeur.
Genre:
2020-03-18_154419.jpg

Pour obtenir ça:
2020-03-18_154731.jpg
 

Pièces jointes

  • 2020-03-18_154419.jpg
    2020-03-18_154419.jpg
    49.1 KB · Affichages: 5
Dernière édition:
A titre d'essai, j'ai trouvé une autre solution qui respecte ton tableau initial en feuille 2020 qui contient des cellules fusionnées. Il faut alors utiliser une fonction qui va chercher la valeur de la MergeArea de cette fusion. Et donc transformer ton fichier .xlsx en .xlsm.

En B3 la formule devient:
=SOMMEPROD(('2020'!$F$3:$F$28)*(MOIS(GetRangeValue('2020'!$C$3:$C$28))=LIGNE()-2)*(GetRangeValue('2020'!$D$3:$D$28)=B$2))

Et il faut inclure cette fonction dans un module:
VB:
Function GetRangeValue(Rng As Range) As Variant
    Dim t() As Variant
    Dim i As Long
    Dim j As Long
   
    t = Rng.Value
   
    For i = 1 To UBound(t, 1)
        For j = 1 To UBound(t, 2)
            If Rng.Cells(i, j).MergeCells Then t(i, j) = Rng.Cells(i, j).MergeArea.Cells(1, 1).Value
        Next j
    Next i
           
    GetRangeValue = t
End Function

Fichier mis à jour avec la formule du post #4.
 

Pièces jointes

Dernière édition:
S'il faut rendre dynamique la hauteur du tableau en feuille 2020, il faut ajouter une manip.

A supposer que la colonne Lieux et Noms soit complète et ne comporte pas de trous (c.a.d qu'elle représente la hauteur réelle du tableau sans cases vides), en B3:

=SOMMEPROD((DECALER('2020'!$F$3;0;0;NBVAL('2020'!$E$3:$E$9999);1))*(MOIS(GetRangeValue(DECALER('2020'!$C$3;0;0;NBVAL('2020'!$E$3:$E$9999);1)))=LIGNE()-2)*(GetRangeValue(DECALER('2020'!$D$3;0;0;NBVAL('2020'!$E$3:$E$9999);1))=B$2))
 
Dernière édition:
Bonjour,
Tu peux essayer en B3
=SOMMEPROD(('2020'!$F$3:$F$28)*(MOIS('2020'!$C$3:$C$28)=LIGNE()-2)*('2020'!$D$3:$D$28=B$2))
Et étendre ça sur B3:K14 à condition de virer ces cellules fusionnées en 2020!C4 & 2020!D4 et reporter l'information sur chaque cellule. Sinon ça me paraît ingérable.
D.
Edit: Ou si tu veux vraiment ne pas avoir de répétition apparente sur les valeurs, mettre une MFC pour mettre en caractères blancs ou gris clair les cellules dont la précédente a la même valeur.
Genre:
Regarde la pièce jointe 1058853
Pour obtenir ça:
Regarde la pièce jointe 1058855
Bonsoir Dudu2
Tout d'abord je tiens à vous remerciez de votre aide.
Bonjour,
Tu peux essayer en B3
=SOMMEPROD(('2020'!$F$3:$F$28)*(MOIS('2020'!$C$3:$C$28)=LIGNE()-2)*('2020'!$D$3:$D$28=B$2))
Et étendre ça sur B3:K14 à condition de virer ces cellules fusionnées en 2020!C4 & 2020!D4 et reporter l'information sur chaque cellule. Sinon ça me paraît ingérable.
D.
Edit: Ou si tu veux vraiment ne pas avoir de répétition apparente sur les valeurs, mettre une MFC pour mettre en caractères blancs ou gris clair les cellules dont la précédente a la même valeur.
Genre:
Regarde la pièce jointe 1058853
Pour obtenir ça:
Regarde la pièce jointe 1058855
Bonsoir Dudu2
Tout d'abord merci pour votre aide.
J'ai opté pour cette solution.
Dans le fichier joint après avoir étendu votre formule en B3:K14, la formule ne gère que le nombre d'affiches posées, mais pas les "Lieux" et à "Qui"
Ai-je fais une mauvaise manip?
 

Pièces jointes

Bonsoir Dudu2
Tout d'abord merci pour votre aide.
J'ai opté pour cette solution.
Dans le fichier joint après avoir étendu votre formule en B3:K14, la formule ne gère que le nombre d'affiches posées, mais pas les "Lieux" et à "Qui"
Ai-je fais une mauvaise manip?

Non tu n'as pas fait de mauvaise manip. Je n'ai pas prêtè attention aux autres compteurs qui manifestement vont requérir un formule spécifique et nécessiter le split des lieux et des noms.
Je regarde ça...
 
2 options:
- option 1: Formules avec adressage des plages directement par leurs numéros de cellules
- option 2: Formules avec adressage des plages utilisant les références propres aux tableaux structurés.
- Je n'ai pas remis l'autre option utilisant les DECALER pour simplifier.

Pour l'option 2 qui est la meilleure méthode devenue possible puisque tu as renoncé aux cellules fusionnées, j'ai transformé le tableau de la feuille 2020 en tableau structuré (Onglet Accueil / Mise sous forme de tableau / choisir l'une des propositions de tableaux)
Dans le Gestionnaire de nom, un nom dédié à ce tableau est créé par Excel. Il est modifiable.
On peut alors faire référence aux titres (quand il y en a), données, totaux (quand il y en a) avec une syntaxe qui libère des références de plages telles que dans l'option 1. C'est très pratique et flexible.

J'ai dû modifier les titres du tableau de la feuille Tableau car non cohérents avec la feuille 2020 (exemple: Jean-Jacques vs Jean Jacques ou Commune vs Population).
Je te recommande soit de passer par des listes de validation, soit de référencer les valeurs d'un tableau à partir de celles de l'autre pour ne pas avoir de différences.
 

Pièces jointes

Dernière édition:
2 options:
- option 1: Formules avec adressage des plages directement par leurs numéros de cellules
- option 2: Formules avec adressage des plages utilisant les références propres aux tableaux structurés.
- Je n'ai pas remis l'autre option utilisant les DECALER pour simplifier.

Pour l'option 2 qui est la meilleure méthode devenue possible puisque tu as renoncé aux cellules fusionnées, j'ai transformé le tableau de la feuille 2020 en tableau structuré (Onglet Accueil / Mise sous forme de tableau / choisir l'une des propositions de tableaux)
Dans le Gestionnaire de nom, un nom dédié à ce tableau est créé par Excel. Il est modifiable.
On peut alors faire référence aux titres (quand il y en a), données, totaux (quand il y en a) avec une syntaxe qui libère des références de plages telles que dans l'option 1. C'est très pratique et flexible.

J'ai dû modifier les titres du tableau de la feuille Tableau car non cohérents avec la feuille 2020 (exemple: Jean-Jacques vs Jean Jacques ou Commune vs Population).
Je te recommande soit de passer par des listes de validation, soit de référencer les valeurs d'un tableau à partir de celles de l'autre pour ne pas avoir de différences.

Bonjour Dudu2
Merci encore de votre AIDE
Je m'excuse pour le retard de ma réponse mais je ne suis pas confiné...Et travail......
Je viens d'ouvrir vos 2 Fichiers.
Mais les compteurs "Lieux" et "Noms" dans la feuille tableau ne correspondent pas aux données de la feuille 2020 ou comme dans le tableau "Exemple Rendu recherché".
Est ce une erreur ou mauvaise manip de ma part?
Très Cordialement.
 
Bonjour,
Je n'ai pas compris pourquoi pour les Motifs tu comptes le nombre d'affiches posées et pour les Lieux et les Noms le nombre de fois où il y a des affiches posées. Donc j'ai tout mis en nombre d'affiches posées.
Mais c'est très simple de modifier les formules pour les Lieux et les Noms pour obtenir le résultat que tu souhaites.
 

Pièces jointes

Bonjour,
Je n'ai pas compris pourquoi pour les Motifs tu comptes le nombre d'affiches posées et pour les Lieux et les Noms le nombre de fois où il y a des affiches posées. Donc j'ai tout mis en nombre d'affiches posées.
Mais c'est très simple de modifier les formules pour les Lieux et les Noms pour obtenir le résultat que tu souhaites.
Merci une nouvelle fois
Pour peut être éclairer votre lanterne si j'arrive à être suffisamment explicite...
En fait, les documents ne seront pas forcément remis aux même personnes dans un même lieux donné.
Votre solution me convient parfaitement.
Merci encore
Et en cette période compliquée, je souhaite que vous viviez ce confinement sans complication.
Prenez soin de vous.
Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
543
Réponses
5
Affichages
503
Réponses
9
Affichages
393
Retour