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

[HELP] grouper des lignes lors d'un tri

11 réponses
Avatar
Jean34
hello
Je me heurte a un problème un peu insoluble pour mes maigres connaissances.

j'ai un tableau de noms et adresses, dont certaines sont sur deux lignes
(pour une contrainte de place sur la feuille, et de lisibilité à
l'impression.

J'ai ainsi par exemple :

toto 0466596376
marcel 0467362176
ruiz 0467403526
0603594950
albert 0621582564
zeze 0466013676


(ruiz a donc deux numéros, le filaire et le gsm)

le problème est que je ne souhaite pas avoir deux fois le même nom (pour la
même personne).
Mais bien sûr, lorsque j'effectue un tri par ordre alphabetique, toutes les
lignes n'ayant pas le nom dans la première colonne se retrouvent en bas du
tableau.

Comment solutionner ce truc, par exemple en "groupant" les lignes d'une même
adresse ?

merci d'avance

Jean34

10 réponses

1 2
Avatar
Jean34
"Jean34" a écrit dans le message de news:

toto 0466596376
marcel 0467362176
ruiz 0467403526
0603594950
albert 0621582564
zeze 0466013676


Bon, normalement c'était aligné....... mais je pense que vous comprendrez !
;))

Avatar
Chris MICHEL
Bonjour,
réponse bète: ne peux-tu écrire le prénom en blanc la
deuxième fois? Il n'apparaitra pas, maisil sera quand même
là si tu fais un tri.
Chris
-----Message d'origine-----
hello
Je me heurte a un problème un peu insoluble pour mes
maigres connaissances.


j'ai un tableau de noms et adresses, dont certaines sont
sur deux lignes

(pour une contrainte de place sur la feuille, et de
lisibilité à

l'impression.

J'ai ainsi par exemple :

toto 0466596376
marcel 0467362176
ruiz 0467403526
0603594950
albert 0621582564
zeze 0466013676


(ruiz a donc deux numéros, le filaire et le gsm)

le problème est que je ne souhaite pas avoir deux fois le
même nom (pour la

même personne).
Mais bien sûr, lorsque j'effectue un tri par ordre
alphabetique, toutes les

lignes n'ayant pas le nom dans la première colonne se
retrouvent en bas du

tableau.

Comment solutionner ce truc, par exemple en "groupant"
les lignes d'une même

adresse ?

merci d'avance

Jean34


.



Avatar
Misange
Bonjour,
tu trouveras sur excelabo page filtres et tris une macro d'isabelle qui
fait cela.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

le 13/01/2004 12:51:
hello
Je me heurte a un problème un peu insoluble pour mes maigres connaissances.

j'ai un tableau de noms et adresses, dont certaines sont sur deux lignes
(pour une contrainte de place sur la feuille, et de lisibilité à
l'impression.

J'ai ainsi par exemple :

toto 0466596376
marcel 0467362176
ruiz 0467403526
0603594950
albert 0621582564
zeze 0466013676


(ruiz a donc deux numéros, le filaire et le gsm)

le problème est que je ne souhaite pas avoir deux fois le même nom (pour la
même personne).
Mais bien sûr, lorsque j'effectue un tri par ordre alphabetique, toutes les
lignes n'ayant pas le nom dans la première colonne se retrouvent en bas du
tableau.

Comment solutionner ce truc, par exemple en "groupant" les lignes d'une même
adresse ?

merci d'avance

Jean34




Avatar
Jean34
"Chris MICHEL" a écrit dans le message
de news: 09d301c3d9cd$97aac4a0$
Bonjour,
réponse bète: ne peux-tu écrire le prénom en blanc la
deuxième fois? Il n'apparaitra pas, maisil sera quand même
là si tu fais un tri.
Chris

effectivement, c'est une bonne idée !!
j'espère simplement qu'après tri certaines cellules "blanches" ne vont pas
se retrouver avant celle portant le nom en noir.....

merci pour ton aide

Jean
Avatar
Jean34
"Misange" a écrit dans le message de news:

Bonjour,
tu trouveras sur excelabo page filtres et tris une macro d'isabelle qui
fait cela.


euh... je suis tombé ici : http://www.excelabo.net/xl/filtris.php

mais de quelle macro s'agit il ?

merci
Jean (qui n'y connait rien en macros)

Avatar
Pascal Engelmajer
Salut,
un solution est de passer par Word,
de convertir le tableau en texte,
d'effectuer un série de chercher-remplacer (toute le marques de paragraphe
par §, puis tous les § suivis d'un lettre par une marque de paragraphe, les
autres par une tabulation)
puis de re-convertir en tableau
plus vite fait qu'expliqué...
-
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Jean34" a écrit dans le message de news:


"Misange" a écrit dans le message de news:

Bonjour,
tu trouveras sur excelabo page filtres et tris une macro d'isabelle qui
fait cela.


euh... je suis tombé ici : http://www.excelabo.net/xl/filtris.php

mais de quelle macro s'agit il ?

merci
Jean (qui n'y connait rien en macros)






Avatar
AV
Pour des données en A1:A10, essaye ça :

Sub zzz()
For Each c In [A1:A10]
If Asc(Left(c, 1)) > 47 And Asc(Left(c, 1)) < 58 Then
c.Offset(-1, 0) = c.Offset(-1, 0).Value & " - " & c.Value
c.Value = ""
End If
Next
[A:A].Sort Key1:=[A1], Order1:=xlAscending
End Sub

PS : A voir le tri en fin de macro s'il y a ou pas une en-tête

AV
Avatar
Daniel.M
Salut Jean,

Tu peux essayer cela:

Sub TrierAvecBreakOn()
Dim C As Range, nCol As Integer, i As Integer
Dim Plage As Range, POut As Range, POut2 As Range

Set Plage = Range("A1").CurrentRegion ' à adapter selon la plage
nCol = Plage.Columns.Count
Set POut = Plage.Offset(0, nCol).Resize(, 1)
Plage.Resize(, 1).Copy Destination:=POut 'Copy de col 1

' Rempli les blancs
On Error Resume Next
Set POut2 = POut.SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not POut2 Is Nothing Then POut2.FormulaR1C1 = "=R[-1]C"

POut.Value = POut.Value ' Fixe les valeurs en dur

' Prêt à trier, on y va
Plage.Resize(, nCol + 1).Sort key1:=POut, order1:=xlAscending, _
key2:=Plage(1, 2), order2:=xlDescending, header:=xlNo

' Remet les blancs à la bonne place en colonne 1
With Plage.Resize(Plage.Rows.Count - 1, 1).Offset(1, 0)
.FormulaR1C1 = "=IF(RC[" & nCol & "]=R[-1]C[" & nCol & _
"], """", RC[" & nCol & "])"
.Value = .Value
End With

' Nettoyage
POut.ClearContents: Set POut2 = Nothing
Set POut = Nothing: Set Plage = Nothing
End Sub

Salutations,

Daniel M.

"Jean34" wrote in message
news:
hello
Je me heurte a un problème un peu insoluble pour mes maigres connaissances.

j'ai un tableau de noms et adresses, dont certaines sont sur deux lignes
(pour une contrainte de place sur la feuille, et de lisibilité à
l'impression.

J'ai ainsi par exemple :

toto 0466596376
marcel 0467362176
ruiz 0467403526
0603594950
albert 0621582564
zeze 0466013676


(ruiz a donc deux numéros, le filaire et le gsm)

le problème est que je ne souhaite pas avoir deux fois le même nom (pour la
même personne).
Mais bien sûr, lorsque j'effectue un tri par ordre alphabetique, toutes les
lignes n'ayant pas le nom dans la première colonne se retrouvent en bas du
tableau.

Comment solutionner ce truc, par exemple en "groupant" les lignes d'une même
adresse ?

merci d'avance

Jean34




Avatar
Daniel.M
Salut,

Quelques bugs corrigés, surtout si le tri produit un premier nom vide en colonne
A.

Sub TrierAvecBreakOn()
Dim nLi As Long ' Nbr lignes de PlgBase
Dim nCol As Integer ' Nbre colonnes de PlgBase
Dim PlgBase As Range, PlgAjout As Range

Set PlgBase = Range("A1").CurrentRegion ' à adapter selon plage
nCol = PlgBase.Columns.Count
nLi = PlgBase.Rows.Count
Set PlgAjout = PlgBase.Offset(0, nCol).Resize(, 1)

PlgAjout(1, 1) = PlgBase(1, 1)
PlgAjout.Offset(1, 0).Resize(nLi - 1).FormulaR1C1 = _
"=IF(RC[-" & nCol & "]="""",R[-1]C,RC[-" & nCol & "])"

PlgAjout.Value = PlgAjout.Value ' Fixe les valeurs en dur

' Prêt à trier, on y va
PlgBase.Resize(, nCol + 1).Sort key1:=PlgAjout, order1:=xlAscending, _
key2:=PlgBase(1, 2), order2:=xlDescending, header:=xlNo

' Remet les blancs à la bonne place en colonne 1
PlgBase(1, 1) = PlgAjout(1, 1)
With PlgBase.Resize(nLi - 1, 1).Offset(1, 0)
.FormulaR1C1 = "=IF(RC[" & nCol & "]=R[-1]C[" & nCol & _
"], """", RC[" & nCol & "])"
.Value = .Value
End With

' Nettoyage
PlgAjout.ClearContents: Set PlgAjout = Nothing: Set PlgBase = Nothing
End Sub


Salutations,

Daniel M.
Avatar
Jean34
"Daniel.M" a écrit dans le message de
news: O2UK#
Salut,

Quelques bugs corrigés, surtout si le tri produit un premier nom vide en
colonne

A.
merci beaucoup pour vos réponses..

Je ne maitrise pas trop les macros, mais je vais me jeter à l'eau !

cordialement
Jean

1 2