[Excel] regroupement par 4 d'une liste

Bonjour à tous

Je m'en remet à vous pour essayer de résoudre un problème que je ne parviens pas à résoudre

Ne connaissant rien aux Macro et encore moins au VBA, je souhaite résoudre ce problème sans utiliser ces fonctions

Voilà le soucis. Depuis une liste de personnes (Maximum 50) je souhaite faire une regroupement par 4.

La liste peut varier de X personnes (de 3 à 50), il faut donc décomposer le nombre de personnes en multiple de 4 et de 3

Le tout doit s'afficher sur la même colonne, faire les regroupements et ce de manière automatique

Difficile de l'expliquer simplement. Pour vous aider à comprendre ce que je souhaite, voici ci-dessous, quelques exemples pour 50, 10, 9 et 17 personnes.

Le nombre, comme dit plus haut, peut varier

forum groupe de 4

J'attends vos retours, et je vous en remercie par avance

Salut,

Comme tu ne souhaites pas de macro, je te propose une solution un peu ''tirée par les cheveux''. Il y a probablement plus simple, mais on ne se presse pas au portillon pour t'aider.

C'est dommage que tu n'acceptes pas les macros. C'est un peu comme si tu disais : je ne roule pas en voiture car je ne sais pas comment fonctionne le moteur

Cordialement.

bonjour

sans tablo monumental et expérimentalement

cordialement

11jeefrezze.xlsm (31.48 Ko)

Salut Tulipe,

J'espère que tu ailles bien, depuis le temps

Il me semble avoir vu un jour que tu t'étais mis aux macros et ça m'avais fait bien plaisir, ou est-ce que je me trompe ?

Au sujet de ce fil : j'ai par erreur récupéré un fichier contenant une macro pour un autre utilisateur (!!!) et mon fichier devait donc être ouvert sur ce fil en acceptant les macros. Je l’ai donc remplacé sur mon message par un fichier sans macro.

De ton côté, tu as récupéré mon fichier et tu as conservé les macros ! Il serait alors bien que tu échanges également ton fichier en enlevant cette maudite macro inutile.

Je n’ai pas compris que tu prétendes proposer une solution sans tableau monstrueux alors que mon usine à gaz est toujours en place ??

Amicalement.

Tulipe,

Avant tout merci pour le temps passé

Ton fichier fonctionne mais pas tout a fait comme je le souhaite.

Comme présenté dans l'exemple, le tables sont des tables de 4 et je souhaite remplir le maximum de table de 4 par 4 personnes et ensuite répartir les autres personnes par 3 (Pas de personnes seules ou de couples)

Dans ta présentation, j'avais réussi à mettre les valeurs à la suite (Comme tu le propose) mais dans la présentation finales sur les table de 3 personnes elles doivent être sur une table de 4 (Il manque le blanc requis : Regardes mes exemples)

Yvouille,

Merci également, mais ta solution finale présente le même problème que ce que propose Tulipe

J'avais réussi (de façon plus compliquée) à faire ce que vous proposez. Mais je ne parviens pas a faire sauter une ligne lorsque il y a 3 personnes sur une table de 4

Je ne sais pas si je me suis bien fait comprendre, idéalement il faut regarder mes exemples ci-dessus (Premier post)

Tulipe,

Avant tout merci pour le temps passé

Ton fichier fonctionne mais pas tout a fait comme je le souhaite.

Comme présenté dans l'exemple, le tables sont des tables de 4 et je souhaite remplir le maximum de table de 4 par 4 personnes et ensuite répartir les autres personnes par 3 (Pas de personnes seules ou de couples)

Dans ta présentation, j'avais réussi à mettre les valeurs à la suite (Comme tu le propose) mais dans la présentation finales sur les table de 3 personnes elles doivent être sur une table de 4 (Il manque le blanc requis : Regardes mes exemples)

Yvouille,

Merci également, mais ta solution finale présente le même problème que ce que propose Tulipe

J'avais réussi (de façon plus compliquée) à faire ce que vous proposez. Mais je ne parviens pas a faire sauter une ligne lorsque il y a 3 personnes sur une table de 4

Je ne sais pas si je me suis bien fait comprendre, idéalement il faut regarder mes exemples ci-dessus (Premier post)

ok mais dans ma formule , lors de la mise au point (façon de parler) j'ai limité à 31 , il conviendrait de remplacer ce 31 par nbval(la plage avec de $$ pur figer ou nommer ) mais c'est pas du sur

Salut Tulipe,

J'espère que tu ailles bien, depuis le temps

Il me semble avoir vu un jour que tu t'étais mis aux macros et ça m'avais fait bien plaisir, ou est-ce que je me trompe ?

Au sujet de ce fil : j'ai par erreur récupéré un fichier contenant une macro pour un autre utilisateur (!!!) et mon fichier devait donc être ouvert sur ce fil en acceptant les macros. Je l’ai donc remplacé sur mon message par un fichier sans macro.

De ton côté, tu as récupéré mon fichier et tu as conservé les macros ! Il serait alors bien que tu échanges également ton fichier en enlevant cette maudite macro inutile.

Je n’ai pas compris que tu prétendes proposer une solution sans tableau monstrueux alors que mon usine à gaz est toujours en place ??

Amicalement.

eh bien depuis que je n'ai plus mon xl 2007 ,,,, les fichiers xlm sont amputés des macro à l'ouverture ,, de plus ,nada de PQ ,, bref queudale ,une sombre histoire d'administrateur ,,,,, je n'y connais rien en installation ,poutant Jean Eric a eu l'amabilité de m'aider

mon XL ,c'est le pack office 365 Familial que j'ai payé plus de 100€

Bonjour,

@ Jeefreeze

Une solution par macro qui répond exactement à ta demande. A noter qu'il n'est pas possible de répartir 5 personnes.

3classeur-3.xlsm (22.13 Ko)

@ Tulipe

Je n'ai pas tout compris de tes explications, mais je vois que tu n'as pas perdu ta verve

Merci Yvouille

Il est tard je regarderai ça demain... Mais macro bloquée sur mon PC par MicroSoft

Comment on déverrouille ? (J'ai pas trouvé le paramètre dans Excel)

Bonne soirée et merci

Nb : J'ai réussi en m'inspirant fortement du vos idées.... mais la macro je vais essayer de comprendre

Bonjour à tous ,

Une autre macro. Lancer directement la macro (ou bien dans le classeur joint, cliquer sur le bouton Hop!).

Le code à copier dans un module :

Sub Par4Par3()
Dim t, der&, nbr&, p4&, q3&, i&, j&, n&, k&, capa&, table&
   Application.ScreenUpdating = False: Range("c2:d" & Rows.Count).Clear
   der = Cells(Rows.Count, "a").End(xlUp).Row
   If der = 2 Then MsgBox "Aucune répartition entre quadruplets et triplets n'est possible !", vbCritical: Exit Sub
   t = Range("a2:a" & der)
   For i = 0 To UBound(t)
      If (UBound(t) - 3 * i) Mod 4 = 0 Then Exit For
   Next i
   q3 = i: p4 = (UBound(t) - 3 * i) / 4
   If p4 < 0 Then MsgBox "Aucune répartition entre quadruplets et triplets n'est possible !", vbCritical: Exit Sub
   capa = IIf(p4 = 0, 3, 4): table = 0: n = 1: k = 0
   For i = 1 To p4
      table = table + 1: n = n + 1: Cells(n, "c") = "table " & table
      k = k + 1: Cells(n, "d") = t(k, 1)
      k = k + 1: n = n + 1: Cells(n, "d") = t(k, 1)
      k = k + 1: n = n + 1: Cells(n, "d") = t(k, 1)
      k = k + 1: n = n + 1: Cells(n, "d") = t(k, 1)
   Next i
   For i = 1 To q3
      table = table + 1: n = n + 1: Cells(n, "c") = "table " & table
      k = k + 1: Cells(n, "d") = t(k, 1)
      k = k + 1: n = n + 1: Cells(n, "d") = t(k, 1)
      k = k + 1: n = n + 1: Cells(n, "d") = t(k, 1)
      If capa = 4 Then n = n + 1
   Next i
   For i = 1 To (p4 + q3): For j = 7 To 10
         Cells(2, "c").Offset(capa * (i - 1)).Resize(capa, 2).Borders(j).LineStyle = xlContinuous
      Next j
   Next i
   Cells(2, "c").Resize(capa * (p4 + q3), 2).Interior.Color = vbWhite
End Sub

Bonjour,

@ Jeefreeze

Une solution par macro qui répond exactement à ta demande. A noter qu'il n'est pas possible de répartir 5 personnes.

3classeur-3.xlsm (22.13 Ko)

@ Tulipe

Je n'ai pas tout compris de tes explications, mais je vois que tu n'as pas perdu ta verve

bonjour

eh bien ,tout simplement ,un administrateur interne à mon PC me bloque tout ,, je serai curieux de savoir y accéder pour lui botter le train

Bonjour,

@ Jeefreeze

Une solution par macro qui répond exactement à ta demande. A noter qu'il n'est pas possible de répartir 5 personnes.

3classeur-3.xlsm (22.13 Ko)

@ Tulipe

Je n'ai pas tout compris de tes explications, mais je vois que tu n'as pas perdu ta verve

bonjour

eh bien ,tout simplement ,un administrateur interne à mon PC me bloque tout ,, je serai curieux de savoir y accéder pour lui botter le train

Un grand merci à tous, Tulipe, mafraise et Yvouille

Vous avez répondu parfaitement à mes attentes ... un grand merci à tous

Je n'ai strictement rien compris au code ... mais ça fonctionne

A+

Rechercher des sujets similaires à "regroupement liste"