XL pour MAC Créer un sous groupe à partir d'un groupe

  • Initiateur de la discussion Initiateur de la discussion rtlv17
  • 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 !

rtlv17

XLDnaute Junior
Bonjour, je souhaite créer une liste de sous groupe à partir d'un groupe d'éléments.

Je m'explique :

A partir d'une liste que j'appelle compte et qui contient des éléments tels que : Alimentation ; Cadeaux ; Voitures ; Loisirs ...

Je souhaite, au regard de chaque compte lister des noms tels que : Intermarché,Leclerc,Boulangerie... ; Pierre,Paul,Jacques... ; Porsche,Ferrari,Renault... ; SNCF,Parc,Livres...

Les informations viennent d'un onglet "journal" dans lequel je saisi au quotidien mes dépenses.

De préférence une formule car je ne suis pas expert en VBA

Merci beaucoup.

A bientôt

Un exemple :
 

Pièces jointes

Solution
Vous n'avez pas compris ce qu'il faut faire avec VBA.

Les fichiers que j'envoie il faut les tester sans rien modifier pour voir s'ils fonctionnent sur MAC

Ensuite vous essayez de comprendre la macro et vous posez des questions sur ce que vous ne comprenez pas.
 
Je propose de travailler sur le fichier, que je re transmets, du post#15 avec la solution proposée de "mapomme", cela me parait plus abordable en cas de modification.
D'accord, voyez le fichier joint mais je n'utilise pas les mêmes formules que mapomme.

Formule matricielle en Matrice!CC4, à tirer vers le bas et copier vers CE4 CG4 CI4 :
Code:
=SIERREUR(INDEX(Journal!$D:$D;PETITE.VALEUR(SI((Journal!$C$15:$C$1000=CC$3)*NON(NB.SI(CC$3:CC3;Journal!$D$15:$D$1000));LIGNE(Journal!$D$15:$D$1000));1));"")
Il n'y a pas de doublon dans chaque colonne.

Formule normale en Matrice!CD4, à tirer vers le bas et copier vers CF4 CH4 CJ4 :
Code:
=SI(CC4="";"";SOMME.SI(Journal!$D:$D;CC4;Journal!$I:$I))
 

Pièces jointes

Je copie,
D'accord, voyez le fichier joint mais je n'utilise pas les mêmes formules que mapomme.

Formule matricielle en Matrice!CC4, à tirer vers le bas et copier vers CE4 CG4 CI4 :
Code:
=SIERREUR(INDEX(Journal!$D:$D;PETITE.VALEUR(SI((Journal!$C$15:$C$1000=CC$3)*NON(NB.SI(CC$3:CC3;Journal!$D$15:$D$1000));LIGNE(Journal!$D$15:$D$1000));1));"")
Il n'y a pas de doublon dans chaque colonne.

Formule normale en Matrice!CD4, à tirer vers le bas et copier vers CF4 CH4 CJ4 :
Code:
=SI(CC4="";"";SOMME.SI(Journal!$D:$D;CC4;Journal!$I:$I))
Merci beaucoup job75,

Je comprends mieux ces formules.

Le fichier joint fonctionne très bien, cependant lorsque je copie les formules dans mon fichier contenant toutes mes données cela ne fonctionne pas.
Les formules sont acceptées sans erreur, mais le résultat est vide.
Je n'arrive pas à transformer les formules en formules matricielles.
Après leur copie ( sans
Code:
 bien sûr), cmd+shift+enter n'a aucun effet.
Je pense que c'est là où le bât blesse.

Ça ne vient pas de ma version d'Excel puisque votre fichier fonctionne, peut être un paramètre de mon fichier ?
 
Le fichier joint fonctionne très bien, cependant lorsque je copie les formules dans mon fichier contenant toutes mes données cela ne fonctionne pas.
J'espère que vous allez finir par vous en sortir, nous en sommes au 34ème post sans résultat chez vous !!!

Pour valider matriciellement une formule il faut mettre le curseur dans la barre de formule et appuyer simultanément sur les 3 touches.

L'inconvénient des tableaux alimentés par formules c'est qu'il faut les dimensionner en tirant les formules vers le bas.

On peut cependant faire faire ce travail par cette petite macro :
VB:
Private Sub WorkSheet_Activate()
Dim r As Range, i, x
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual 'évite le recalcul des formules volatiles
Set r = [CC4:CJ4]
While Application.CountIf(r, "><")
    r.Copy r.Offset(1)
    Set r = r.Offset(1)
    r.Calculate
Wend
r.Offset(1).Resize(Rows.Count - r.Row).Delete xlUp 'RAZ en dessous
Application.Calculation = xlCalculationAutomatic
End Sub
Elle se déclenche automatiquement quand on active la feuille.

Attention, ne faites pas l'erreur montrée au post #29 : la macro est dans le code de la feuille, pas dans un module standard !!!

La macro est cependant assez lente : pour tirer les formules sur 100 lignes il faut 2,8 secondes chez moi.
 

Pièces jointes

J'espère que vous allez finir par vous en sortir, nous en sommes au 34ème post sans résultat chez vous !!!

Pour valider matriciellement une formule il faut mettre le curseur dans la barre de formule et appuyer simultanément sur les 3 touches.

L'inconvénient des tableaux alimentés par formules c'est qu'il faut les dimensionner en tirant les formules vers le bas.

On peut cependant faire faire ce travail par cette petite macro :
VB:
Private Sub WorkSheet_Activate()
Dim r As Range, i, x
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual 'évite le recalcul des formules volatiles
Set r = [CC4:CJ4]
While Application.CountIf(r, "><")
    r.Copy r.Offset(1)
    Set r = r.Offset(1)
    r.Calculate
Wend
r.Offset(1).Resize(Rows.Count - r.Row).Delete xlUp 'RAZ en dessous
Application.Calculation = xlCalculationAutomatic
End Sub
Elle se déclenche automatiquement quand on active la feuille.

Attention, ne faites pas l'erreur montrée au post #29 : la macro est dans le code de la feuille, pas dans un module standard !!!

La macro est cependant assez lente : pour tirer les formules sur 100 lignes il faut 2,8 secondes chez moi.

Votre fichier marche très bien.
Lorsque je copie une cinquantaine de lignes du fichier que je mets à jour régulièrement sur votre fichier, ce dernier se met à jour automatiquement. C'est exactement l'objet de ma requête.
Mais la copie du tableau sur ce fichier officiel ne fonctionne pas.

Je creuse...
 
Bonjour job75,
je vous fais grâce de vos réflexions ! A moins que ce ne soit du deuxième degré.

Ce n'est pas de la fatigue mais plutôt de la méconnaissance et c'est la raison de ma présence sur ce forum auprès d'experts.

Si celui ci était réservé aux experts alors je me retirerai.

Juste avant :
Pour rendre une colonne matricielle, je sélectionne la cellule qui contient la formule, j'appuie simultanément sur les touches cmd+shift+enter.
Là, des accolades apparaissent autour de la formule dans la zone de saisie.
Je tire cette cellule contenant la formule, désormais matricielle, vers le bas.

Est ce que ces actions sont exactes ?
Si non, qu'est ce que je fais mal ?
Si oui, cela ne fonctionne pas pour moi... d'où nos 35 posts.

J'ai compris mon erreur en colonne H, en revanche je n'arrive pas à rendre la colonne G matricielle.
 
Bonjour rtlv17,
Pour rendre une colonne matricielle, je sélectionne la cellule qui contient la formule, j'appuie simultanément sur les touches cmd+shift+enter.
Là, des accolades apparaissent autour de la formule dans la zone de saisie.
Le curseur doit être dans la cellule (mode Edition).

Normalement si des accolades apparaissent c'est que la validation matricielle est réussie.

Mais vous dites que cela ne fonctionne pas chez vous, il n'y a pas d'accolades ?

A+
 
bonjour rtlv17, salut job75,
cela devient difficile quand cela devient une conversation entre personnes sourdes, on ne se comprend pas.
autre contournement : vos données sont dans un tableau structuré "tabel1" et on crée un tableau croisé dynamique avec ce TS. Puis on a une macro qui copie chaque item de "Compte" vers une colonne de laplage nommée "Entete" et ses details& totaux juste en dessous.
J'éspère que cela fonctionne avec un MAC.

Edit : bonjour job75
 

Pièces jointes

Bonjour rtlv17,

Le curseur doit être dans la cellule (mode Edition).

Normalement si des accolades apparaissent c'est que la validation matricielle est réussie.

Mais vous dites que cela ne fonctionne pas chez vous, il n'y a pas d'accolades ?

A+
Oui, j'ai bien vu des accolades apparaître sur un de vos fichiers ; mais la même action sur un de mes fichiers est sans résultat.
Ou bien lorsque je copie une de vos formules matricielles sur un de mes fichiers, cette dernière n'est pas rendue matricielle (pas d'accolade).
 
bonjour rtlv17, salut job75,
cela devient difficile quand cela devient une conversation entre personnes sourdes, on ne se comprend pas.
autre contournement : vos données sont dans un tableau structuré "tabel1" et on crée un tableau croisé dynamique avec ce TS. Puis on a une macro qui copie chaque item de "Compte" vers une colonne de laplage nommée "Entete" et ses details& totaux juste en dessous.
J'éspère que cela fonctionne avec un MAC.

Edit : bonjour job75
Bonjour bsalv et merci pour votre participation à trouver une solution à ma requête.

Votre solution fonctionne bien sur Mac ; il me reste à la transposer dans le fichier que j'utilise au quotidien.

Vous tiens au courant.
 
Oui, j'ai bien vu des accolades apparaître sur un de vos fichiers ; mais la même action sur un de mes fichiers est sans résultat.
Dernière tentative : vous ne savez peut-être pas mettre la cellule en mode Edition (curseur dans la cellule).

Alors faites ce que je vous disais au post #34 :

- cliquez dans la barre de formule et entrez-y la formule si elle n'y est pas

- validez en appuyant sur les 3 touches simultanément.

Les accolades doivent alors apparaître.
 
Bonjour bsalv et merci pour votre participation à trouver une solution à ma requête.

Votre solution fonctionne bien sur Mac ; il me reste à la transposer dans le fichier que j'utilise au quotidien.

Vous tiens au courant.
bsalv :

Mes faibles connaissances de vba ne me permettent pas de transposer votre macro sur mon fichier perso.
Seriez vous en mesure de le faire ?
Ci joint l'exact copie de mon fichier sans les données privées (seuls des exemples ont été ajoutés).

Dans l'onglet "Journal" en col C ; D ; I vous trouverez les dépenses quotidiennes
Dans l'onglet "Matrice" en col CC je souhaite synthétiser ces dépenses par type (alimentation, voitures, ...) d'une part et sous type d'autre part (Leclerc, Grand frais, Intermarché...) et leur montant correspondant.

Merci de votre coopération
 

Pièces jointes

Je viens de trouver pourquoi je n'arrivais pas à transformer une formule en matricielle.

Je tapais jusqu'à présent "cmd+shift+enter" or il fallait taper "ctrl+shift+enter" !

Donc la formule matricielle fonctionne avec mon fichier comportant toutes mes données.

La solution proposée par "ma pomme" et améliorée par job75 est valable est réponds à ma requête.

Merci à vous tous pour votre investissement et mention spéciale à job75 pour sa patience.



A une prochaine fois sur ce forum.
 
- 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
Retour