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 ?
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
.
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
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 ?
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
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
"Chris MICHEL" <anonymous@discussions.microsoft.com> a écrit dans le message
de news: 09d301c3d9cd$97aac4a0$a401280a@phx.gbl...
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.....
"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
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)
"Misange" <misange@devinezou.net> a écrit dans le message de news:
OmkOt2c2DHA.3224@tk2msftngp13.phx.gbl...
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
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)
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)
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" <jean34@zerospam> a écrit dans le message de news:
enhYhFd2DHA.3196@TK2MSFTNGP11.phx.gbl...
"Misange" <misange@devinezou.net> a écrit dans le message de news:
OmkOt2c2DHA.3224@tk2msftngp13.phx.gbl...
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
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)
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
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
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
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
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" <jean34@zerospam> wrote in message
news:O5HZGuc2DHA.2680@tk2msftngp13.phx.gbl...
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 ?
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
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)