Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

grouper des lignes

8 réponses
Avatar
joseph84
Bonjour tout le monde,

je voudrais regrouper des lignes:

ex:

A B
1234 papa
1234 mama
4321 fr=E8re
4321 Soeur

apr=E8s la macros

A B
+ 1234 papa
+ 4321 fr=E8re

le probl=E8me que j'arrive pas a grouper les lignes qui ont le m=EAme
numeros de la colonne A


Merci

8 réponses

Avatar
DanielCo
Bonjour,
Clique sur la ligne "mama" et sur "grouper"; fais de même sur la ligne
"soeur".
Cordialement.
Daniel


Bonjour tout le monde,

je voudrais regrouper des lignes:

ex:

A B
1234 papa
1234 mama
4321 frère
4321 Soeur

après la macros

A B
+ 1234 papa
+ 4321 frère

le problème que j'arrive pas a grouper les lignes qui ont le même
numeros de la colonne A


Merci
Avatar
joseph84
Merci pour votre réponse, mais je voudrais automatiser tout ca avec
une macro
Avatar
DanielCo
Sub test2()
Dim c As Range, Res As Integer
Res = 2
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
If c <> c.Offset(1) Then
Range("A" & Res & ":A" & c.Row).EntireRow.Group
Res = c.Row + 2
End If
Next c
End Sub

Daniel


Merci pour votre réponse, mais je voudrais automatiser tout ca avec
une macro
Avatar
michel ou sam
Bonjour Daniel,
j'étais parti avec des do- while mais ta solution est plus élégante.

par contre il y a un pb de limite final
en faisant un test avec
1234 papa
1234 mama
3421 frere
3421 s½ur
3421 oncle
3564 tata

le dernier groupe 3421 prend les 2 lignes suivantes (la tata + une ligne)

Michel

"DanielCo" a écrit dans le message de news:
j2uc1k$lc3$
Sub test2()
Dim c As Range, Res As Integer
Res = 2
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
If c <> c.Offset(1) Then
Range("A" & Res & ":A" & c.Row).EntireRow.Group
Res = c.Row + 2
End If
Next c
End Sub

Daniel


Merci pour votre réponse, mais je voudrais automatiser tout ca avec
une macro




Avatar
joseph84
merci beaucoup pour ton aide.
mais c'est pas toujours avec une paire de 2 c'est variable
Avatar
DanielCo
Exact, ça m'a réveillé cette nuit, et aussi partout où il n'y a qu'un
item :

Sub test3()
Dim c As Range, Res As Integer
Res = 2
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
If c <> c.Offset(1) Then
If c.Row - Res >= 0 Then
Range("A" & Res & ":A" & c.Row).EntireRow.Group
End If
Res = c.Row + 2
End If
Next c
End Sub

Daniel

michel ou sam a écrit
Bonjour Daniel,
j'étais parti avec des do- while mais ta solution est plus élégante.

par contre il y a un pb de limite final
en faisant un test avec
1234 papa
1234 mama
3421 frere
3421 s½ur
3421 oncle
3564 tata

le dernier groupe 3421 prend les 2 lignes suivantes (la tata + une ligne)

Michel

"DanielCo" a écrit dans le message de news:
j2uc1k$lc3$
Sub test2()
Dim c As Range, Res As Integer
Res = 2
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
If c <> c.Offset(1) Then
Range("A" & Res & ":A" & c.Row).EntireRow.Group
Res = c.Row + 2
End If
Next c
End Sub

Daniel


Merci pour votre réponse, mais je voudrais automatiser tout ca avec
une macro




Avatar
DanielCo
Bonjour,
C'es censé le faire avec un nombre variable de lignes. Les items isolés
sont traités dans le code que je viens de poster en réponse à michel ou
sam.

Daniel

joseph84 a écrit
merci beaucoup pour ton aide.
mais c'est pas toujours avec une paire de 2 c'est variable
Avatar
joseph84
Merci beaucoup tout fonctionne à merveille rien à dire encore merci à
vous tous :)