tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry William ou autre ?
isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1), Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que je veux
à partir d'une sélection simple située n'importe où sur la feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1), order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" a écrit dans le message de news: %salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending, Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants, 1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry William ou autre ?
isabelle
garnote a écrit :
Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <i@v> a écrit dans le message de news: OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl...
salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1), Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :
Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que je veux
à partir d'une sélection simple située n'importe où sur la feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1), order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <i@v> a écrit dans le message de news: %23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl...
salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending, Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :
Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <i@v> a écrit dans le message de news: Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl...
salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants, 1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :
Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry William ou autre ?
isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1), Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que je veux
à partir d'une sélection simple située n'importe où sur la feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1), order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" a écrit dans le message de news: %salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending, Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants, 1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" a écrit dans le message de news: %tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry William ou autre ?
isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1), Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que je veux
à partir d'une sélection simple située n'importe où sur la feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1), order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" a écrit dans le message de news: %salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending, Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants, 1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <i@v> a écrit dans le message de news: %23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl...
tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry William ou autre ?
isabelle
garnote a écrit :
Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <i@v> a écrit dans le message de news: OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl...
salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1), Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :
Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que je veux
à partir d'une sélection simple située n'importe où sur la feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1), order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <i@v> a écrit dans le message de news: %23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl...
salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending, Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :
Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <i@v> a écrit dans le message de news: Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl...
salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants, 1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :
Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" a écrit dans le message de news: %tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry William ou autre ?
isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1), Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que je veux
à partir d'une sélection simple située n'importe où sur la feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1), order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" a écrit dans le message de news: %salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending, Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants, 1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote" a écrit dans le message de news:Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" a écrit dans le message de news: %tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry William ou autre ?
isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1), Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que je veux
à partir d'une sélection simple située n'importe où sur la feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1), order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" a écrit dans le message de news: %salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending, Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants, 1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote" <garnote3RIEN@videotron.ca> a écrit dans le message de news: eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl...
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <i@v> a écrit dans le message de news: %23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl...
tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry William ou autre ?
isabelle
garnote a écrit :
Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <i@v> a écrit dans le message de news: OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl...
salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1), Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :
Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que je veux
à partir d'une sélection simple située n'importe où sur la feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1), order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <i@v> a écrit dans le message de news: %23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl...
salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending, Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :
Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <i@v> a écrit dans le message de news: Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl...
salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants, 1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :
Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote" a écrit dans le message de news:Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" a écrit dans le message de news: %tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry William ou autre ?
isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1), Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que je veux
à partir d'une sélection simple située n'importe où sur la feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1), order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" a écrit dans le message de news: %salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending, Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" a écrit dans le message de news:salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants, 1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Voici le même en html :
œ€¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...
> tu poste en texte ou en html ?
> isabelle
>
> garnote a écrit :
>> En effet, les deux premiers caractères que je vois
>> ici sont différents des caractères que je voyais
>> dans ma cellule.
>>
>>
>> "garnote"
<mailto: a écrit dans le message de news:
<mailto:...
>>
>>> Avec coder(Texte, Clé)
>>> Mais j''ai l'impression que certains caractères sont
>>> dénaturés suite à un copier-coller
>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>
>>> Serge
>>>
>>>
>>> "isabelle" <mailto: a écrit dans le message de news:
%
<mailto:%...
>>>
>>>> tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?
>>>> isabelle
>>>>
>>>> garnote a écrit :
>>>>
>>>>> Merci Isabelle,
>>>>>
>>>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>>>
>>>>> clé: 89
>>>>>
>>>>> A--
>>>>>
>>>>> Serge
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> "isabelle" <mailto: a écrit dans le message de news:
<mailto:...
>>>>>
>>>>>
>>>>>> salut Serge,
>>>>>>
>>>>>> Sub Isa1()
>>>>>> Application.ScreenUpdating = False
>>>>>> Set ici = Selection
>>>>>> NL = ici.Rows.Count
>>>>>> For Each c In ici
>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>> Else
>>>>>> c1 = ici.Item(1).Column
>>>>>> c2 = ici.Item(ici.Count).Column
>>>>>> x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))
>>>>>> Cells(c.Row + NL + 1, c1 + x) = c
>>>>>> End If
>>>>>> Next c
>>>>>> Application.ScreenUpdating = False
>>>>>> End Sub
>>>>>>
>>>>>> isabelle
>>>>>>
>>>>>> garnote a écrit :
>>>>>>
>>>>>>
>>>>>>> Bonjour,
>>>>>>>
>>>>>>> J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veux
>>>>>>> à partir d'une sélection simple située n'importe où sur la
feuille :
>>>>>>>
>>>>>>> Sub Isa1()
>>>>>>> Application.ScreenUpdating = False
>>>>>>> Set ici = Selection
>>>>>>> NL = ici.Rows.Count
>>>>>>> For Each c In ici
>>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>>> Else
>>>>>>> c.Offset(NL + 1, 0) = c
>>>>>>> End If
>>>>>>> Next c
>>>>>>> ici.Offset(NL + 1, 0).Select
>>>>>>> Set ici = Selection
>>>>>>> For i = 1 To ici.Rows.Count
>>>>>>> ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscending
>>>>>>> Next i
>>>>>>> Application.ScreenUpdating = True
>>>>>>> End Sub
>>>>>>>
>>>>>>> Les données de chaque ligne de la nouvelle plage sont
>>>>>>> triées en ordre croissant et c'est bien ainsi.
>>>>>>> Maintenant, je voudrais obtenir la même disposition avec
>>>>>>> les données dans le même ordre que la plage de départ.
>>>>>>> Et là je bloque lamentablement ;-(
>>>>>>> Vous avez des idées ?
>>>>>>> Voici un exemple :
>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
>>>>>>>
>>>>>>> A--
>>>>>>> Serge
>>>>>>>
>>>>>>>
>>>>>>> Sub Macro1()
>>>>>>> Set plage = Selection
>>>>>>> Plgn = plage.Item(1).Row
>>>>>>> Nlgn = plage.Rows.Count
>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>
>>>>>>> For Each c In plage
>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,
>>>>>>> Replacement:=""
>>>>>>> Next c
>>>>>>>
>>>>>>> For i = Plgn To Dlgn
>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
>>>>>>> Header:=xlNoGuess, _
>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>> DataOption1:=xlSortNormal
>>>>>>> End If
>>>>>>> Next i
>>>>>>> End Sub
>>>>>>>
>>>>>>> Isabelle
>>>>>>>
>>>>>>> .
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> "isabelle" <mailto: a écrit dans le message de news:
%
<mailto:%...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> salut Serge,
>>>>>>>>
>>>>>>>> voilà,
>>>>>>>>
>>>>>>>> Sub Macro1()
>>>>>>>> Set plage = Selection
>>>>>>>> Plgn = plage.Item(1).Row
>>>>>>>> Nlgn = plage.Rows.Count
>>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>>
>>>>>>>> For Each c In plage
>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>> Next c
>>>>>>>>
>>>>>>>> For i = Plgn To Dlgn
>>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
>>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>>> DataOption1:=xlSortNormal
>>>>>>>> End If
>>>>>>>> Next i
>>>>>>>> End Sub
>>>>>>>>
>>>>>>>> isabelle
>>>>>>>>
>>>>>>>> garnote a écrit :
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Bonsoir et merci Isabelle,
>>>>>>>>>
>>>>>>>>> Mais ça ne fonctionne pas ;-(
>>>>>>>>> Et moi aussi j'avais tâté du CountIf !
>>>>>>>>> Par mise en forme conditionnelle, je peux
>>>>>>>>> jaunir les doublons, mais je voudrais plus.
>>>>>>>>> Voici un autre exemple :
>>>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
>>>>>>>>>
>>>>>>>>> Bonsoir, Bonne nuit,
>>>>>>>>> Serge
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "isabelle" <mailto: a écrit dans le message de
news:
<mailto:...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> salut Serge,
>>>>>>>>>>
>>>>>>>>>> Sub Macro1()
>>>>>>>>>> Set plage = Selection
>>>>>>>>>> lgn = plage.Rows.Count
>>>>>>>>>> For Each c In plage
>>>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>>>> Next
>>>>>>>>>> For i = 1 To lgn
>>>>>>>>>> If Application.CountA(plage.Rows(i)) >= 1 Then
>>>>>>>>>> plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).Address
>>>>>>>>>> Range(plg).Cut
>>>>>>>>>> Range("A" & i).Select
>>>>>>>>>> ActiveSheet.Paste
>>>>>>>>>> End If
>>>>>>>>>> Next
>>>>>>>>>> End Sub
>>>>>>>>>>
>>>>>>>>>> isabelle
>>>>>>>>>>
>>>>>>>>>> garnote a écrit :
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Bonjour,
>>>>>>>>>>>
>>>>>>>>>>> Je sélectionne une plage simple contenant (exemple ) :
>>>>>>>>>>>
>>>>>>>>>>> 1 2 3 _ _
>>>>>>>>>>>
>>>>>>>>>>> 8 7 9 1 _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 7 8
>>>>>>>>>>>
>>>>>>>>>>> Les _ représentant des cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Par macro, je veux éliminer tous les doublons
>>>>>>>>>>> et obtenir comme nouvelle plage :
>>>>>>>>>>>
>>>>>>>>>>> 2 3 _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 9 _ _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 _ _
>>>>>>>>>>>
>>>>>>>>>>> Doit pouvoir se généraliser pour une plage quelconque
>>>>>>>>>>> dont chaque ligne commence par une série de nombres
>>>>>>>>>>> suivi de cellules vides.La dernière ligne ne contient
>>>>>>>>>>> jamais de cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Serge
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>
>>
>>
Voici le même en html :
œ€¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl
<mailto:uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl>...
> tu poste en texte ou en html ?
> isabelle
>
> garnote a écrit :
>> En effet, les deux premiers caractères que je vois
>> ici sont différents des caractères que je voyais
>> dans ma cellule.
>>
>>
>> "garnote" <garnote3RIEN@videotron.ca
<mailto:garnote3RIEN@videotron.ca>> a écrit dans le message de news:
eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl
<mailto:eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl>...
>>
>>> Avec coder(Texte, Clé)
>>> Mais j''ai l'impression que certains caractères sont
>>> dénaturés suite à un copier-coller
>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>
>>> Serge
>>>
>>>
>>> "isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl
<mailto:%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl>...
>>>
>>>> tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?
>>>> isabelle
>>>>
>>>> garnote a écrit :
>>>>
>>>>> Merci Isabelle,
>>>>>
>>>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>>>
>>>>> clé: 89
>>>>>
>>>>> A--
>>>>>
>>>>> Serge
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> "isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl
<mailto:OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl>...
>>>>>
>>>>>
>>>>>> salut Serge,
>>>>>>
>>>>>> Sub Isa1()
>>>>>> Application.ScreenUpdating = False
>>>>>> Set ici = Selection
>>>>>> NL = ici.Rows.Count
>>>>>> For Each c In ici
>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>> Else
>>>>>> c1 = ici.Item(1).Column
>>>>>> c2 = ici.Item(ici.Count).Column
>>>>>> x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))
>>>>>> Cells(c.Row + NL + 1, c1 + x) = c
>>>>>> End If
>>>>>> Next c
>>>>>> Application.ScreenUpdating = False
>>>>>> End Sub
>>>>>>
>>>>>> isabelle
>>>>>>
>>>>>> garnote a écrit :
>>>>>>
>>>>>>
>>>>>>> Bonjour,
>>>>>>>
>>>>>>> J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veux
>>>>>>> à partir d'une sélection simple située n'importe où sur la
feuille :
>>>>>>>
>>>>>>> Sub Isa1()
>>>>>>> Application.ScreenUpdating = False
>>>>>>> Set ici = Selection
>>>>>>> NL = ici.Rows.Count
>>>>>>> For Each c In ici
>>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>>> Else
>>>>>>> c.Offset(NL + 1, 0) = c
>>>>>>> End If
>>>>>>> Next c
>>>>>>> ici.Offset(NL + 1, 0).Select
>>>>>>> Set ici = Selection
>>>>>>> For i = 1 To ici.Rows.Count
>>>>>>> ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscending
>>>>>>> Next i
>>>>>>> Application.ScreenUpdating = True
>>>>>>> End Sub
>>>>>>>
>>>>>>> Les données de chaque ligne de la nouvelle plage sont
>>>>>>> triées en ordre croissant et c'est bien ainsi.
>>>>>>> Maintenant, je voudrais obtenir la même disposition avec
>>>>>>> les données dans le même ordre que la plage de départ.
>>>>>>> Et là je bloque lamentablement ;-(
>>>>>>> Vous avez des idées ?
>>>>>>> Voici un exemple :
>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
>>>>>>>
>>>>>>> A--
>>>>>>> Serge
>>>>>>>
>>>>>>>
>>>>>>> Sub Macro1()
>>>>>>> Set plage = Selection
>>>>>>> Plgn = plage.Item(1).Row
>>>>>>> Nlgn = plage.Rows.Count
>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>
>>>>>>> For Each c In plage
>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,
>>>>>>> Replacement:=""
>>>>>>> Next c
>>>>>>>
>>>>>>> For i = Plgn To Dlgn
>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
>>>>>>> Header:=xlNoGuess, _
>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>> DataOption1:=xlSortNormal
>>>>>>> End If
>>>>>>> Next i
>>>>>>> End Sub
>>>>>>>
>>>>>>> Isabelle
>>>>>>>
>>>>>>> .
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> "isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl
<mailto:%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl>...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> salut Serge,
>>>>>>>>
>>>>>>>> voilà,
>>>>>>>>
>>>>>>>> Sub Macro1()
>>>>>>>> Set plage = Selection
>>>>>>>> Plgn = plage.Item(1).Row
>>>>>>>> Nlgn = plage.Rows.Count
>>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>>
>>>>>>>> For Each c In plage
>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>> Next c
>>>>>>>>
>>>>>>>> For i = Plgn To Dlgn
>>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
>>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>>> DataOption1:=xlSortNormal
>>>>>>>> End If
>>>>>>>> Next i
>>>>>>>> End Sub
>>>>>>>>
>>>>>>>> isabelle
>>>>>>>>
>>>>>>>> garnote a écrit :
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Bonsoir et merci Isabelle,
>>>>>>>>>
>>>>>>>>> Mais ça ne fonctionne pas ;-(
>>>>>>>>> Et moi aussi j'avais tâté du CountIf !
>>>>>>>>> Par mise en forme conditionnelle, je peux
>>>>>>>>> jaunir les doublons, mais je voudrais plus.
>>>>>>>>> Voici un autre exemple :
>>>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
>>>>>>>>>
>>>>>>>>> Bonsoir, Bonne nuit,
>>>>>>>>> Serge
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "isabelle" <i@v <mailto:i@v>> a écrit dans le message de
news: Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl
<mailto:Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl>...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> salut Serge,
>>>>>>>>>>
>>>>>>>>>> Sub Macro1()
>>>>>>>>>> Set plage = Selection
>>>>>>>>>> lgn = plage.Rows.Count
>>>>>>>>>> For Each c In plage
>>>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>>>> Next
>>>>>>>>>> For i = 1 To lgn
>>>>>>>>>> If Application.CountA(plage.Rows(i)) >= 1 Then
>>>>>>>>>> plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).Address
>>>>>>>>>> Range(plg).Cut
>>>>>>>>>> Range("A" & i).Select
>>>>>>>>>> ActiveSheet.Paste
>>>>>>>>>> End If
>>>>>>>>>> Next
>>>>>>>>>> End Sub
>>>>>>>>>>
>>>>>>>>>> isabelle
>>>>>>>>>>
>>>>>>>>>> garnote a écrit :
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Bonjour,
>>>>>>>>>>>
>>>>>>>>>>> Je sélectionne une plage simple contenant (exemple ) :
>>>>>>>>>>>
>>>>>>>>>>> 1 2 3 _ _
>>>>>>>>>>>
>>>>>>>>>>> 8 7 9 1 _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 7 8
>>>>>>>>>>>
>>>>>>>>>>> Les _ représentant des cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Par macro, je veux éliminer tous les doublons
>>>>>>>>>>> et obtenir comme nouvelle plage :
>>>>>>>>>>>
>>>>>>>>>>> 2 3 _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 9 _ _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 _ _
>>>>>>>>>>>
>>>>>>>>>>> Doit pouvoir se généraliser pour une plage quelconque
>>>>>>>>>>> dont chaque ligne commence par une série de nombres
>>>>>>>>>>> suivi de cellules vides.La dernière ligne ne contient
>>>>>>>>>>> jamais de cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Serge
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>
>>
>>
Voici le même en html :
œ€¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...
> tu poste en texte ou en html ?
> isabelle
>
> garnote a écrit :
>> En effet, les deux premiers caractères que je vois
>> ici sont différents des caractères que je voyais
>> dans ma cellule.
>>
>>
>> "garnote"
<mailto: a écrit dans le message de news:
<mailto:...
>>
>>> Avec coder(Texte, Clé)
>>> Mais j''ai l'impression que certains caractères sont
>>> dénaturés suite à un copier-coller
>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>
>>> Serge
>>>
>>>
>>> "isabelle" <mailto: a écrit dans le message de news:
%
<mailto:%...
>>>
>>>> tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?
>>>> isabelle
>>>>
>>>> garnote a écrit :
>>>>
>>>>> Merci Isabelle,
>>>>>
>>>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>>>
>>>>> clé: 89
>>>>>
>>>>> A--
>>>>>
>>>>> Serge
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> "isabelle" <mailto: a écrit dans le message de news:
<mailto:...
>>>>>
>>>>>
>>>>>> salut Serge,
>>>>>>
>>>>>> Sub Isa1()
>>>>>> Application.ScreenUpdating = False
>>>>>> Set ici = Selection
>>>>>> NL = ici.Rows.Count
>>>>>> For Each c In ici
>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>> Else
>>>>>> c1 = ici.Item(1).Column
>>>>>> c2 = ici.Item(ici.Count).Column
>>>>>> x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))
>>>>>> Cells(c.Row + NL + 1, c1 + x) = c
>>>>>> End If
>>>>>> Next c
>>>>>> Application.ScreenUpdating = False
>>>>>> End Sub
>>>>>>
>>>>>> isabelle
>>>>>>
>>>>>> garnote a écrit :
>>>>>>
>>>>>>
>>>>>>> Bonjour,
>>>>>>>
>>>>>>> J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veux
>>>>>>> à partir d'une sélection simple située n'importe où sur la
feuille :
>>>>>>>
>>>>>>> Sub Isa1()
>>>>>>> Application.ScreenUpdating = False
>>>>>>> Set ici = Selection
>>>>>>> NL = ici.Rows.Count
>>>>>>> For Each c In ici
>>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>>> Else
>>>>>>> c.Offset(NL + 1, 0) = c
>>>>>>> End If
>>>>>>> Next c
>>>>>>> ici.Offset(NL + 1, 0).Select
>>>>>>> Set ici = Selection
>>>>>>> For i = 1 To ici.Rows.Count
>>>>>>> ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscending
>>>>>>> Next i
>>>>>>> Application.ScreenUpdating = True
>>>>>>> End Sub
>>>>>>>
>>>>>>> Les données de chaque ligne de la nouvelle plage sont
>>>>>>> triées en ordre croissant et c'est bien ainsi.
>>>>>>> Maintenant, je voudrais obtenir la même disposition avec
>>>>>>> les données dans le même ordre que la plage de départ.
>>>>>>> Et là je bloque lamentablement ;-(
>>>>>>> Vous avez des idées ?
>>>>>>> Voici un exemple :
>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
>>>>>>>
>>>>>>> A--
>>>>>>> Serge
>>>>>>>
>>>>>>>
>>>>>>> Sub Macro1()
>>>>>>> Set plage = Selection
>>>>>>> Plgn = plage.Item(1).Row
>>>>>>> Nlgn = plage.Rows.Count
>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>
>>>>>>> For Each c In plage
>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,
>>>>>>> Replacement:=""
>>>>>>> Next c
>>>>>>>
>>>>>>> For i = Plgn To Dlgn
>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
>>>>>>> Header:=xlNoGuess, _
>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>> DataOption1:=xlSortNormal
>>>>>>> End If
>>>>>>> Next i
>>>>>>> End Sub
>>>>>>>
>>>>>>> Isabelle
>>>>>>>
>>>>>>> .
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> "isabelle" <mailto: a écrit dans le message de news:
%
<mailto:%...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> salut Serge,
>>>>>>>>
>>>>>>>> voilà,
>>>>>>>>
>>>>>>>> Sub Macro1()
>>>>>>>> Set plage = Selection
>>>>>>>> Plgn = plage.Item(1).Row
>>>>>>>> Nlgn = plage.Rows.Count
>>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>>
>>>>>>>> For Each c In plage
>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>> Next c
>>>>>>>>
>>>>>>>> For i = Plgn To Dlgn
>>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
>>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>>> DataOption1:=xlSortNormal
>>>>>>>> End If
>>>>>>>> Next i
>>>>>>>> End Sub
>>>>>>>>
>>>>>>>> isabelle
>>>>>>>>
>>>>>>>> garnote a écrit :
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Bonsoir et merci Isabelle,
>>>>>>>>>
>>>>>>>>> Mais ça ne fonctionne pas ;-(
>>>>>>>>> Et moi aussi j'avais tâté du CountIf !
>>>>>>>>> Par mise en forme conditionnelle, je peux
>>>>>>>>> jaunir les doublons, mais je voudrais plus.
>>>>>>>>> Voici un autre exemple :
>>>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
>>>>>>>>>
>>>>>>>>> Bonsoir, Bonne nuit,
>>>>>>>>> Serge
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "isabelle" <mailto: a écrit dans le message de
news:
<mailto:...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> salut Serge,
>>>>>>>>>>
>>>>>>>>>> Sub Macro1()
>>>>>>>>>> Set plage = Selection
>>>>>>>>>> lgn = plage.Rows.Count
>>>>>>>>>> For Each c In plage
>>>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>>>> Next
>>>>>>>>>> For i = 1 To lgn
>>>>>>>>>> If Application.CountA(plage.Rows(i)) >= 1 Then
>>>>>>>>>> plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).Address
>>>>>>>>>> Range(plg).Cut
>>>>>>>>>> Range("A" & i).Select
>>>>>>>>>> ActiveSheet.Paste
>>>>>>>>>> End If
>>>>>>>>>> Next
>>>>>>>>>> End Sub
>>>>>>>>>>
>>>>>>>>>> isabelle
>>>>>>>>>>
>>>>>>>>>> garnote a écrit :
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Bonjour,
>>>>>>>>>>>
>>>>>>>>>>> Je sélectionne une plage simple contenant (exemple ) :
>>>>>>>>>>>
>>>>>>>>>>> 1 2 3 _ _
>>>>>>>>>>>
>>>>>>>>>>> 8 7 9 1 _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 7 8
>>>>>>>>>>>
>>>>>>>>>>> Les _ représentant des cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Par macro, je veux éliminer tous les doublons
>>>>>>>>>>> et obtenir comme nouvelle plage :
>>>>>>>>>>>
>>>>>>>>>>> 2 3 _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 9 _ _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 _ _
>>>>>>>>>>>
>>>>>>>>>>> Doit pouvoir se généraliser pour une plage quelconque
>>>>>>>>>>> dont chaque ligne commence par une série de nombres
>>>>>>>>>>> suivi de cellules vides.La dernière ligne ne contient
>>>>>>>>>>> jamais de cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Serge
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>
>>
>>
y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...
> tu poste en texte ou en html ?
> isabelle
>
> garnote a écrit :
>> En effet, les deux premiers caractères que je vois
>> ici sont différents des caractères que je voyais
>> dans ma cellule.
>>
>>
>> "garnote"
<mailto: a écrit dans le message de news:
<mailto:...
>>
>>> Avec coder(Texte, Clé)
>>> Mais j''ai l'impression que certains caractères sont
>>> dénaturés suite à un copier-coller
>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>
>>> Serge
>>>
>>>
>>> "isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...
>>>
>>>> tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?
>>>> isabelle
>>>>
>>>> garnote a écrit :
>>>>
>>>>> Merci Isabelle,
>>>>>
>>>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>>>
>>>>> clé: 89
>>>>>
>>>>> A--
>>>>>
>>>>> Serge
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> "isabelle" <mailto: a écrit dans le message de news:
<mailto:...
>>>>>
>>>>>
>>>>>> salut Serge,
>>>>>>
>>>>>> Sub Isa1()
>>>>>> Application.ScreenUpdating = False
>>>>>> Set ici = Selection
>>>>>> NL = ici.Rows.Count
>>>>>> For Each c In ici
>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>> Else
>>>>>> c1 = ici.Item(1).Column
>>>>>> c2 = ici.Item(ici.Count).Column
>>>>>> x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))
>>>>>> Cells(c.Row + NL + 1, c1 + x) = c
>>>>>> End If
>>>>>> Next c
>>>>>> Application.ScreenUpdating = False
>>>>>> End Sub
>>>>>>
>>>>>> isabelle
>>>>>>
>>>>>> garnote a écrit :
>>>>>>
>>>>>>
>>>>>>> Bonjour,
>>>>>>>
>>>>>>> J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veux
>>>>>>> à partir d'une sélection simple située n'importe où sur la
feuille :
>>>>>>>
>>>>>>> Sub Isa1()
>>>>>>> Application.ScreenUpdating = False
>>>>>>> Set ici = Selection
>>>>>>> NL = ici.Rows.Count
>>>>>>> For Each c In ici
>>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>>> Else
>>>>>>> c.Offset(NL + 1, 0) = c
>>>>>>> End If
>>>>>>> Next c
>>>>>>> ici.Offset(NL + 1, 0).Select
>>>>>>> Set ici = Selection
>>>>>>> For i = 1 To ici.Rows.Count
>>>>>>> ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscending
>>>>>>> Next i
>>>>>>> Application.ScreenUpdating = True
>>>>>>> End Sub
>>>>>>>
>>>>>>> Les données de chaque ligne de la nouvelle plage sont
>>>>>>> triées en ordre croissant et c'est bien ainsi.
>>>>>>> Maintenant, je voudrais obtenir la même disposition avec
>>>>>>> les données dans le même ordre que la plage de départ.
>>>>>>> Et là je bloque lamentablement ;-(
>>>>>>> Vous avez des idées ?
>>>>>>> Voici un exemple :
>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
>>>>>>>
>>>>>>> A--
>>>>>>> Serge
>>>>>>>
>>>>>>>
>>>>>>> Sub Macro1()
>>>>>>> Set plage = Selection
>>>>>>> Plgn = plage.Item(1).Row
>>>>>>> Nlgn = plage.Rows.Count
>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>
>>>>>>> For Each c In plage
>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,
>>>>>>> Replacement:=""
>>>>>>> Next c
>>>>>>>
>>>>>>> For i = Plgn To Dlgn
>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
>>>>>>> Header:=xlNoGuess, _
>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>> DataOption1:=xlSortNormal
>>>>>>> End If
>>>>>>> Next i
>>>>>>> End Sub
>>>>>>>
>>>>>>> Isabelle
>>>>>>>
>>>>>>> .
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> "isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> salut Serge,
>>>>>>>>
>>>>>>>> voilà,
>>>>>>>>
>>>>>>>> Sub Macro1()
>>>>>>>> Set plage = Selection
>>>>>>>> Plgn = plage.Item(1).Row
>>>>>>>> Nlgn = plage.Rows.Count
>>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>>
>>>>>>>> For Each c In plage
>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>> Next c
>>>>>>>>
>>>>>>>> For i = Plgn To Dlgn
>>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
>>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>>> DataOption1:=xlSortNormal
>>>>>>>> End If
>>>>>>>> Next i
>>>>>>>> End Sub
>>>>>>>>
>>>>>>>> isabelle
>>>>>>>>
>>>>>>>> garnote a écrit :
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Bonsoir et merci Isabelle,
>>>>>>>>>
>>>>>>>>> Mais ça ne fonctionne pas ;-(
>>>>>>>>> Et moi aussi j'avais tâté du CountIf !
>>>>>>>>> Par mise en forme conditionnelle, je peux
>>>>>>>>> jaunir les doublons, mais je voudrais plus.
>>>>>>>>> Voici un autre exemple :
>>>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
>>>>>>>>>
>>>>>>>>> Bonsoir, Bonne nuit,
>>>>>>>>> Serge
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "isabelle" <mailto: a écrit dans le message de
news: <mailto:...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> salut Serge,
>>>>>>>>>>
>>>>>>>>>> Sub Macro1()
>>>>>>>>>> Set plage = Selection
>>>>>>>>>> lgn = plage.Rows.Count
>>>>>>>>>> For Each c In plage
>>>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>>>> Next
>>>>>>>>>> For i = 1 To lgn
>>>>>>>>>> If Application.CountA(plage.Rows(i)) >= 1 Then
>>>>>>>>>> plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).Address
>>>>>>>>>> Range(plg).Cut
>>>>>>>>>> Range("A" & i).Select
>>>>>>>>>> ActiveSheet.Paste
>>>>>>>>>> End If
>>>>>>>>>> Next
>>>>>>>>>> End Sub
>>>>>>>>>>
>>>>>>>>>> isabelle
>>>>>>>>>>
>>>>>>>>>> garnote a écrit :
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Bonjour,
>>>>>>>>>>>
>>>>>>>>>>> Je sélectionne une plage simple contenant (exemple ) :
>>>>>>>>>>>
>>>>>>>>>>> 1 2 3 _ _
>>>>>>>>>>>
>>>>>>>>>>> 8 7 9 1 _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 7 8
>>>>>>>>>>>
>>>>>>>>>>> Les _ représentant des cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Par macro, je veux éliminer tous les doublons
>>>>>>>>>>> et obtenir comme nouvelle plage :
>>>>>>>>>>>
>>>>>>>>>>> 2 3 _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 9 _ _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 _ _
>>>>>>>>>>>
>>>>>>>>>>> Doit pouvoir se généraliser pour une plage quelconque
>>>>>>>>>>> dont chaque ligne commence par une série de nombres
>>>>>>>>>>> suivi de cellules vides.La dernière ligne ne contient
>>>>>>>>>>> jamais de cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Serge
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>
>>
>>
y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :
Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news: uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl
<mailto:uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl>...
> tu poste en texte ou en html ?
> isabelle
>
> garnote a écrit :
>> En effet, les deux premiers caractères que je vois
>> ici sont différents des caractères que je voyais
>> dans ma cellule.
>>
>>
>> "garnote" <garnote3RIEN@videotron.ca
<mailto:garnote3RIEN@videotron.ca>> a écrit dans le message de news: eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl
<mailto:eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl>...
>>
>>> Avec coder(Texte, Clé)
>>> Mais j''ai l'impression que certains caractères sont
>>> dénaturés suite à un copier-coller
>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>
>>> Serge
>>>
>>>
>>> "isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl <mailto:%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl>...
>>>
>>>> tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?
>>>> isabelle
>>>>
>>>> garnote a écrit :
>>>>
>>>>> Merci Isabelle,
>>>>>
>>>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>>>
>>>>> clé: 89
>>>>>
>>>>> A--
>>>>>
>>>>> Serge
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> "isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl <mailto:OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl>...
>>>>>
>>>>>
>>>>>> salut Serge,
>>>>>>
>>>>>> Sub Isa1()
>>>>>> Application.ScreenUpdating = False
>>>>>> Set ici = Selection
>>>>>> NL = ici.Rows.Count
>>>>>> For Each c In ici
>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>> Else
>>>>>> c1 = ici.Item(1).Column
>>>>>> c2 = ici.Item(ici.Count).Column
>>>>>> x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))
>>>>>> Cells(c.Row + NL + 1, c1 + x) = c
>>>>>> End If
>>>>>> Next c
>>>>>> Application.ScreenUpdating = False
>>>>>> End Sub
>>>>>>
>>>>>> isabelle
>>>>>>
>>>>>> garnote a écrit :
>>>>>>
>>>>>>
>>>>>>> Bonjour,
>>>>>>>
>>>>>>> J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veux
>>>>>>> à partir d'une sélection simple située n'importe où sur la
feuille :
>>>>>>>
>>>>>>> Sub Isa1()
>>>>>>> Application.ScreenUpdating = False
>>>>>>> Set ici = Selection
>>>>>>> NL = ici.Rows.Count
>>>>>>> For Each c In ici
>>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>>> Else
>>>>>>> c.Offset(NL + 1, 0) = c
>>>>>>> End If
>>>>>>> Next c
>>>>>>> ici.Offset(NL + 1, 0).Select
>>>>>>> Set ici = Selection
>>>>>>> For i = 1 To ici.Rows.Count
>>>>>>> ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscending
>>>>>>> Next i
>>>>>>> Application.ScreenUpdating = True
>>>>>>> End Sub
>>>>>>>
>>>>>>> Les données de chaque ligne de la nouvelle plage sont
>>>>>>> triées en ordre croissant et c'est bien ainsi.
>>>>>>> Maintenant, je voudrais obtenir la même disposition avec
>>>>>>> les données dans le même ordre que la plage de départ.
>>>>>>> Et là je bloque lamentablement ;-(
>>>>>>> Vous avez des idées ?
>>>>>>> Voici un exemple :
>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
>>>>>>>
>>>>>>> A--
>>>>>>> Serge
>>>>>>>
>>>>>>>
>>>>>>> Sub Macro1()
>>>>>>> Set plage = Selection
>>>>>>> Plgn = plage.Item(1).Row
>>>>>>> Nlgn = plage.Rows.Count
>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>
>>>>>>> For Each c In plage
>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,
>>>>>>> Replacement:=""
>>>>>>> Next c
>>>>>>>
>>>>>>> For i = Plgn To Dlgn
>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
>>>>>>> Header:=xlNoGuess, _
>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>> DataOption1:=xlSortNormal
>>>>>>> End If
>>>>>>> Next i
>>>>>>> End Sub
>>>>>>>
>>>>>>> Isabelle
>>>>>>>
>>>>>>> .
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> "isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl <mailto:%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl>...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> salut Serge,
>>>>>>>>
>>>>>>>> voilà,
>>>>>>>>
>>>>>>>> Sub Macro1()
>>>>>>>> Set plage = Selection
>>>>>>>> Plgn = plage.Item(1).Row
>>>>>>>> Nlgn = plage.Rows.Count
>>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>>
>>>>>>>> For Each c In plage
>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>> Next c
>>>>>>>>
>>>>>>>> For i = Plgn To Dlgn
>>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
>>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>>> DataOption1:=xlSortNormal
>>>>>>>> End If
>>>>>>>> Next i
>>>>>>>> End Sub
>>>>>>>>
>>>>>>>> isabelle
>>>>>>>>
>>>>>>>> garnote a écrit :
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Bonsoir et merci Isabelle,
>>>>>>>>>
>>>>>>>>> Mais ça ne fonctionne pas ;-(
>>>>>>>>> Et moi aussi j'avais tâté du CountIf !
>>>>>>>>> Par mise en forme conditionnelle, je peux
>>>>>>>>> jaunir les doublons, mais je voudrais plus.
>>>>>>>>> Voici un autre exemple :
>>>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
>>>>>>>>>
>>>>>>>>> Bonsoir, Bonne nuit,
>>>>>>>>> Serge
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "isabelle" <i@v <mailto:i@v>> a écrit dans le message de
news: Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl <mailto:Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl>...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> salut Serge,
>>>>>>>>>>
>>>>>>>>>> Sub Macro1()
>>>>>>>>>> Set plage = Selection
>>>>>>>>>> lgn = plage.Rows.Count
>>>>>>>>>> For Each c In plage
>>>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>>>> Next
>>>>>>>>>> For i = 1 To lgn
>>>>>>>>>> If Application.CountA(plage.Rows(i)) >= 1 Then
>>>>>>>>>> plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).Address
>>>>>>>>>> Range(plg).Cut
>>>>>>>>>> Range("A" & i).Select
>>>>>>>>>> ActiveSheet.Paste
>>>>>>>>>> End If
>>>>>>>>>> Next
>>>>>>>>>> End Sub
>>>>>>>>>>
>>>>>>>>>> isabelle
>>>>>>>>>>
>>>>>>>>>> garnote a écrit :
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Bonjour,
>>>>>>>>>>>
>>>>>>>>>>> Je sélectionne une plage simple contenant (exemple ) :
>>>>>>>>>>>
>>>>>>>>>>> 1 2 3 _ _
>>>>>>>>>>>
>>>>>>>>>>> 8 7 9 1 _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 7 8
>>>>>>>>>>>
>>>>>>>>>>> Les _ représentant des cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Par macro, je veux éliminer tous les doublons
>>>>>>>>>>> et obtenir comme nouvelle plage :
>>>>>>>>>>>
>>>>>>>>>>> 2 3 _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 9 _ _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 _ _
>>>>>>>>>>>
>>>>>>>>>>> Doit pouvoir se généraliser pour une plage quelconque
>>>>>>>>>>> dont chaque ligne commence par une série de nombres
>>>>>>>>>>> suivi de cellules vides.La dernière ligne ne contient
>>>>>>>>>>> jamais de cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Serge
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>
>>
>>
y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...
> tu poste en texte ou en html ?
> isabelle
>
> garnote a écrit :
>> En effet, les deux premiers caractères que je vois
>> ici sont différents des caractères que je voyais
>> dans ma cellule.
>>
>>
>> "garnote"
<mailto: a écrit dans le message de news:
<mailto:...
>>
>>> Avec coder(Texte, Clé)
>>> Mais j''ai l'impression que certains caractères sont
>>> dénaturés suite à un copier-coller
>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>
>>> Serge
>>>
>>>
>>> "isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...
>>>
>>>> tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?
>>>> isabelle
>>>>
>>>> garnote a écrit :
>>>>
>>>>> Merci Isabelle,
>>>>>
>>>>> o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
>>>>>
>>>>> clé: 89
>>>>>
>>>>> A--
>>>>>
>>>>> Serge
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> "isabelle" <mailto: a écrit dans le message de news:
<mailto:...
>>>>>
>>>>>
>>>>>> salut Serge,
>>>>>>
>>>>>> Sub Isa1()
>>>>>> Application.ScreenUpdating = False
>>>>>> Set ici = Selection
>>>>>> NL = ici.Rows.Count
>>>>>> For Each c In ici
>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>> Else
>>>>>> c1 = ici.Item(1).Column
>>>>>> c2 = ici.Item(ici.Count).Column
>>>>>> x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))
>>>>>> Cells(c.Row + NL + 1, c1 + x) = c
>>>>>> End If
>>>>>> Next c
>>>>>> Application.ScreenUpdating = False
>>>>>> End Sub
>>>>>>
>>>>>> isabelle
>>>>>>
>>>>>> garnote a écrit :
>>>>>>
>>>>>>
>>>>>>> Bonjour,
>>>>>>>
>>>>>>> J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veux
>>>>>>> à partir d'une sélection simple située n'importe où sur la
feuille :
>>>>>>>
>>>>>>> Sub Isa1()
>>>>>>> Application.ScreenUpdating = False
>>>>>>> Set ici = Selection
>>>>>>> NL = ici.Rows.Count
>>>>>>> For Each c In ici
>>>>>>> If Application.CountIf(ici, c) > 1 Then
>>>>>>> c.Offset(NL + 1, 0) = ""
>>>>>>> Else
>>>>>>> c.Offset(NL + 1, 0) = c
>>>>>>> End If
>>>>>>> Next c
>>>>>>> ici.Offset(NL + 1, 0).Select
>>>>>>> Set ici = Selection
>>>>>>> For i = 1 To ici.Rows.Count
>>>>>>> ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscending
>>>>>>> Next i
>>>>>>> Application.ScreenUpdating = True
>>>>>>> End Sub
>>>>>>>
>>>>>>> Les données de chaque ligne de la nouvelle plage sont
>>>>>>> triées en ordre croissant et c'est bien ainsi.
>>>>>>> Maintenant, je voudrais obtenir la même disposition avec
>>>>>>> les données dans le même ordre que la plage de départ.
>>>>>>> Et là je bloque lamentablement ;-(
>>>>>>> Vous avez des idées ?
>>>>>>> Voici un exemple :
>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
>>>>>>>
>>>>>>> A--
>>>>>>> Serge
>>>>>>>
>>>>>>>
>>>>>>> Sub Macro1()
>>>>>>> Set plage = Selection
>>>>>>> Plgn = plage.Item(1).Row
>>>>>>> Nlgn = plage.Rows.Count
>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>
>>>>>>> For Each c In plage
>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,
>>>>>>> Replacement:=""
>>>>>>> Next c
>>>>>>>
>>>>>>> For i = Plgn To Dlgn
>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
>>>>>>> Header:=xlNoGuess, _
>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>> DataOption1:=xlSortNormal
>>>>>>> End If
>>>>>>> Next i
>>>>>>> End Sub
>>>>>>>
>>>>>>> Isabelle
>>>>>>>
>>>>>>> .
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> "isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> salut Serge,
>>>>>>>>
>>>>>>>> voilà,
>>>>>>>>
>>>>>>>> Sub Macro1()
>>>>>>>> Set plage = Selection
>>>>>>>> Plgn = plage.Item(1).Row
>>>>>>>> Nlgn = plage.Rows.Count
>>>>>>>> Dlgn = Plgn + Nlgn - 1
>>>>>>>>
>>>>>>>> For Each c In plage
>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>> Next c
>>>>>>>>
>>>>>>>> For i = Plgn To Dlgn
>>>>>>>> If Application.CountA(Rows(i)) >= 1 Then
>>>>>>>> Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
>>>>>>>> OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
>>>>>>>> DataOption1:=xlSortNormal
>>>>>>>> End If
>>>>>>>> Next i
>>>>>>>> End Sub
>>>>>>>>
>>>>>>>> isabelle
>>>>>>>>
>>>>>>>> garnote a écrit :
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Bonsoir et merci Isabelle,
>>>>>>>>>
>>>>>>>>> Mais ça ne fonctionne pas ;-(
>>>>>>>>> Et moi aussi j'avais tâté du CountIf !
>>>>>>>>> Par mise en forme conditionnelle, je peux
>>>>>>>>> jaunir les doublons, mais je voudrais plus.
>>>>>>>>> Voici un autre exemple :
>>>>>>>>> http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
>>>>>>>>>
>>>>>>>>> Bonsoir, Bonne nuit,
>>>>>>>>> Serge
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "isabelle" <mailto: a écrit dans le message de
news: <mailto:...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> salut Serge,
>>>>>>>>>>
>>>>>>>>>> Sub Macro1()
>>>>>>>>>> Set plage = Selection
>>>>>>>>>> lgn = plage.Rows.Count
>>>>>>>>>> For Each c In plage
>>>>>>>>>> If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
>>>>>>>>>> Next
>>>>>>>>>> For i = 1 To lgn
>>>>>>>>>> If Application.CountA(plage.Rows(i)) >= 1 Then
>>>>>>>>>> plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).Address
>>>>>>>>>> Range(plg).Cut
>>>>>>>>>> Range("A" & i).Select
>>>>>>>>>> ActiveSheet.Paste
>>>>>>>>>> End If
>>>>>>>>>> Next
>>>>>>>>>> End Sub
>>>>>>>>>>
>>>>>>>>>> isabelle
>>>>>>>>>>
>>>>>>>>>> garnote a écrit :
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Bonjour,
>>>>>>>>>>>
>>>>>>>>>>> Je sélectionne une plage simple contenant (exemple ) :
>>>>>>>>>>>
>>>>>>>>>>> 1 2 3 _ _
>>>>>>>>>>>
>>>>>>>>>>> 8 7 9 1 _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 7 8
>>>>>>>>>>>
>>>>>>>>>>> Les _ représentant des cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Par macro, je veux éliminer tous les doublons
>>>>>>>>>>> et obtenir comme nouvelle plage :
>>>>>>>>>>>
>>>>>>>>>>> 2 3 _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 9 _ _ _ _
>>>>>>>>>>>
>>>>>>>>>>> 4 5 6 _ _
>>>>>>>>>>>
>>>>>>>>>>> Doit pouvoir se généraliser pour une plage quelconque
>>>>>>>>>>> dont chaque ligne commence par une série de nombres
>>>>>>>>>>> suivi de cellules vides.La dernière ligne ne contient
>>>>>>>>>>> jamais de cellules vides.
>>>>>>>>>>>
>>>>>>>>>>> Serge
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>
>>
>>
Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" a écrit dans le message de news:y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...tu poste en texte ou en html ?
isabelle
garnote a écrit :En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote"
<mailto: a écrit dans le message de news:
<mailto:...Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veuxà partir d'une sélection simple située n'importe où sur la
feuille :Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscendingNext i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <mailto: a écrit dans le message de
news: <mailto:...salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).AddressRange(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" <i@v> a écrit dans le message de news: OgPgEsdlJHA.4448@TK2MSFTNGP05.phx.gbl...
y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :
Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news: uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl
<mailto:uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl>...
tu poste en texte ou en html ?
isabelle
garnote a écrit :
En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote" <garnote3RIEN@videotron.ca
<mailto:garnote3RIEN@videotron.ca>> a écrit dans le message de news: eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl
<mailto:eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl>...
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl <mailto:%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl>...
tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?
isabelle
garnote a écrit :
Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl <mailto:OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl>...
salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :
Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veux
à partir d'une sélection simple située n'importe où sur la
feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl <mailto:%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl>...
salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :
Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de
news: Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl <mailto:Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl>...
salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :
Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" a écrit dans le message de news:y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...tu poste en texte ou en html ?
isabelle
garnote a écrit :En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote"
<mailto: a écrit dans le message de news:
<mailto:...Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veuxà partir d'une sélection simple située n'importe où sur la
feuille :Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscendingNext i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <mailto: a écrit dans le message de
news: <mailto:...salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).AddressRange(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
ha! c'est une nouvelle version, ça pouvait ben ne pas fonctionner,
isabelle
garnote a écrit :Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" a écrit dans le message de news:y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...tu poste en texte ou en html ?
isabelle
garnote a écrit :En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote"
<mailto: a écrit dans le message de news:
<mailto:...Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veuxà partir d'une sélection simple située n'importe où sur la
feuille :Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscendingNext i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <mailto: a écrit dans le message de
news: <mailto:...salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).AddressRange(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
ha! c'est une nouvelle version, ça pouvait ben ne pas fonctionner,
isabelle
garnote a écrit :
Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" <i@v> a écrit dans le message de news: OgPgEsdlJHA.4448@TK2MSFTNGP05.phx.gbl...
y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :
Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news: uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl
<mailto:uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl>...
tu poste en texte ou en html ?
isabelle
garnote a écrit :
En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote" <garnote3RIEN@videotron.ca
<mailto:garnote3RIEN@videotron.ca>> a écrit dans le message de news: eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl
<mailto:eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl>...
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl <mailto:%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl>...
tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?
isabelle
garnote a écrit :
Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl <mailto:OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl>...
salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :
Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veux
à partir d'une sélection simple située n'importe où sur la
feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl <mailto:%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl>...
salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :
Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de
news: Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl <mailto:Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl>...
salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :
Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
ha! c'est une nouvelle version, ça pouvait ben ne pas fonctionner,
isabelle
garnote a écrit :Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" a écrit dans le message de news:y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...tu poste en texte ou en html ?
isabelle
garnote a écrit :En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote"
<mailto: a écrit dans le message de news:
<mailto:...Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veuxà partir d'une sélection simple située n'importe où sur la
feuille :Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscendingNext i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <mailto: a écrit dans le message de
news: <mailto:...salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).AddressRange(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Toutes ces questions pour en arriver à finaliser
ma laborieuse tentative pour résoudre
le terrible problème de Freudenthal !
Voici le problème et ma version gros bêta
de sa solution ;-)
http://www.cijoint.fr/cjlink.php?file=cj200902/cijnY5QXcw.doc
Serge
"isabelle" a écrit dans le message de news: etO$ha! c'est une nouvelle version, ça pouvait ben ne pas fonctionner,
isabelle
garnote a écrit :Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" a écrit dans le message de news:y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...tu poste en texte ou en html ?
isabelle
garnote a écrit :En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote"
<mailto: a écrit dans le message de news:
<mailto:...Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veuxà partir d'une sélection simple située n'importe où sur la
feuille :Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscendingNext i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <mailto: a écrit dans le message de
news: <mailto:...salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).AddressRange(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Toutes ces questions pour en arriver à finaliser
ma laborieuse tentative pour résoudre
le terrible problème de Freudenthal !
Voici le problème et ma version gros bêta
de sa solution ;-)
http://www.cijoint.fr/cjlink.php?file=cj200902/cijnY5QXcw.doc
Serge
"isabelle" <i@v> a écrit dans le message de news: etO$fDelJHA.3868@TK2MSFTNGP05.phx.gbl...
ha! c'est une nouvelle version, ça pouvait ben ne pas fonctionner,
isabelle
garnote a écrit :
Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" <i@v> a écrit dans le message de news: OgPgEsdlJHA.4448@TK2MSFTNGP05.phx.gbl...
y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :
Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news: uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl
<mailto:uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl>...
tu poste en texte ou en html ?
isabelle
garnote a écrit :
En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote" <garnote3RIEN@videotron.ca
<mailto:garnote3RIEN@videotron.ca>> a écrit dans le message de news: eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl
<mailto:eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl>...
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl <mailto:%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl>...
tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?
isabelle
garnote a écrit :
Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl <mailto:OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl>...
salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :
Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veux
à partir d'une sélection simple située n'importe où sur la
feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl <mailto:%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl>...
salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :
Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de
news: Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl <mailto:Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl>...
salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :
Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Toutes ces questions pour en arriver à finaliser
ma laborieuse tentative pour résoudre
le terrible problème de Freudenthal !
Voici le problème et ma version gros bêta
de sa solution ;-)
http://www.cijoint.fr/cjlink.php?file=cj200902/cijnY5QXcw.doc
Serge
"isabelle" a écrit dans le message de news: etO$ha! c'est une nouvelle version, ça pouvait ben ne pas fonctionner,
isabelle
garnote a écrit :Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" a écrit dans le message de news:y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...tu poste en texte ou en html ?
isabelle
garnote a écrit :En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote"
<mailto: a écrit dans le message de news:
<mailto:...Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veuxà partir d'une sélection simple située n'importe où sur la
feuille :Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscendingNext i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <mailto: a écrit dans le message de
news: <mailto:...salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).AddressRange(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Oups, m'ai trompé de document !
Voici le bon :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij9BW6psP.xls
Serge,
qui a les deux yeux dans le même trou ä force
de piocher sur ce problème de malade mental ;-)
"garnote" a écrit dans le message de news:Toutes ces questions pour en arriver à finaliser
ma laborieuse tentative pour résoudre
le terrible problème de Freudenthal !
Voici le problème et ma version gros bêta
de sa solution ;-)
http://www.cijoint.fr/cjlink.php?file=cj200902/cijnY5QXcw.doc
Serge
"isabelle" a écrit dans le message de news: etO$ha! c'est une nouvelle version, ça pouvait ben ne pas fonctionner,
isabelle
garnote a écrit :Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" a écrit dans le message de news:y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...tu poste en texte ou en html ?
isabelle
garnote a écrit :En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote"
<mailto: a écrit dans le message de news:
<mailto:...Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veuxà partir d'une sélection simple située n'importe où sur la
feuille :Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscendingNext i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <mailto: a écrit dans le message de
news: <mailto:...salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).AddressRange(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Oups, m'ai trompé de document !
Voici le bon :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij9BW6psP.xls
Serge,
qui a les deux yeux dans le même trou ä force
de piocher sur ce problème de malade mental ;-)
"garnote" <garnote3RIEN@videotron.ca> a écrit dans le message de news: eug2wVelJHA.3760@TK2MSFTNGP03.phx.gbl...
Toutes ces questions pour en arriver à finaliser
ma laborieuse tentative pour résoudre
le terrible problème de Freudenthal !
Voici le problème et ma version gros bêta
de sa solution ;-)
http://www.cijoint.fr/cjlink.php?file=cj200902/cijnY5QXcw.doc
Serge
"isabelle" <i@v> a écrit dans le message de news: etO$fDelJHA.3868@TK2MSFTNGP05.phx.gbl...
ha! c'est une nouvelle version, ça pouvait ben ne pas fonctionner,
isabelle
garnote a écrit :
Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" <i@v> a écrit dans le message de news: OgPgEsdlJHA.4448@TK2MSFTNGP05.phx.gbl...
y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :
Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news: uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl
<mailto:uS47afdlJHA.4448@TK2MSFTNGP05.phx.gbl>...
tu poste en texte ou en html ?
isabelle
garnote a écrit :
En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote" <garnote3RIEN@videotron.ca
<mailto:garnote3RIEN@videotron.ca>> a écrit dans le message de news: eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl
<mailto:eUKhCYdlJHA.4760@TK2MSFTNGP04.phx.gbl>...
Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl <mailto:%23aqnOSdlJHA.1168@TK2MSFTNGP05.phx.gbl>...
tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?
isabelle
garnote a écrit :
Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl <mailto:OPBlUbclJHA.1168@TK2MSFTNGP05.phx.gbl>...
salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))
Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :
Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veux
à partir d'une sélection simple située n'importe où sur la
feuille :
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscending
Next i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,
Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de news:
%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl <mailto:%23ne42UXlJHA.4252@TK2MSFTNGP02.phx.gbl>...
salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :
Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <i@v <mailto:i@v>> a écrit dans le message de
news: Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl <mailto:Ov3oFKWlJHA.4252@TK2MSFTNGP02.phx.gbl>...
salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""
Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).Address
Range(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :
Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge
Oups, m'ai trompé de document !
Voici le bon :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij9BW6psP.xls
Serge,
qui a les deux yeux dans le même trou ä force
de piocher sur ce problème de malade mental ;-)
"garnote" a écrit dans le message de news:Toutes ces questions pour en arriver à finaliser
ma laborieuse tentative pour résoudre
le terrible problème de Freudenthal !
Voici le problème et ma version gros bêta
de sa solution ;-)
http://www.cijoint.fr/cjlink.php?file=cj200902/cijnY5QXcw.doc
Serge
"isabelle" a écrit dans le message de news: etO$ha! c'est une nouvelle version, ça pouvait ben ne pas fonctionner,
isabelle
garnote a écrit :Le voici :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijVP1kuT5.xls
Serge
"isabelle" a écrit dans le message de news:y'a toujours rien de lisible,
envoie moi ton fichier
mon adresse : http://cjoint.com/?czsuFH0ZGQ.
isabelle
garnote a écrit :Voici le même en html :
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
¬¾ËÀ¾
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...tu poste en texte ou en html ?
isabelle
garnote a écrit :En effet, les deux premiers caractères que je vois
ici sont différents des caractères que je voyais
dans ma cellule.
"garnote"
<mailto: a écrit dans le message de news:
<mailto:...Avec coder(Texte, Clé)
Mais j''ai l'impression que certains caractères sont
dénaturés suite à un copier-coller
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
Serge
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...tu l'as codée avec =coder(Texte, Clé) ou bien celle de Thierry
William ou autre ?isabelle
garnote a écrit :Merci Isabelle,
o?¾ÌÍyźyɾ˿¾¼ÍÂÈÇyÆCƾyz
clé: 89
A--
Serge
"isabelle" <mailto: a écrit dans le message de news:
<mailto:...salut Serge,
Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c1 = ici.Item(1).Column
c2 = ici.Item(ici.Count).Column
x = Application.CountA(Range(Cells(c.Row + NL + 1, c1),
Cells(c.Row + NL + 1, c2)))Cells(c.Row + NL + 1, c1 + x) = c
End If
Next c
Application.ScreenUpdating = False
End Sub
isabelle
garnote a écrit :Bonjour,
J'ai modifié un tipeu la macro d'Isabelle et j'obtiens ce que
je veuxà partir d'une sélection simple située n'importe où sur la
feuille :Sub Isa1()
Application.ScreenUpdating = False
Set ici = Selection
NL = ici.Rows.Count
For Each c In ici
If Application.CountIf(ici, c) > 1 Then
c.Offset(NL + 1, 0) = ""
Else
c.Offset(NL + 1, 0) = c
End If
Next c
ici.Offset(NL + 1, 0).Select
Set ici = Selection
For i = 1 To ici.Rows.Count
ici.Rows(i).Sort key1:=ici(i, 1),
order1:=xlAscendingNext i
Application.ScreenUpdating = True
End Sub
Les données de chaque ligne de la nouvelle plage sont
triées en ordre croissant et c'est bien ainsi.
Maintenant, je voudrais obtenir la même disposition avec
les données dans le même ordre que la plage de départ.
Et là je bloque lamentablement ;-(
Vous avez des idées ?
Voici un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cijPFVG3m0.xls
A--
Serge
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c,Replacement:=""
Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
Isabelle
.
"isabelle" <mailto: a écrit dans le message de news:
% <mailto:%...salut Serge,
voilà,
Sub Macro1()
Set plage = Selection
Plgn = plage.Item(1).Row
Nlgn = plage.Rows.Count
Dlgn = Plgn + Nlgn - 1
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next c
For i = Plgn To Dlgn
If Application.CountA(Rows(i)) >= 1 Then
Rows(i).Sort Key1:=Range("A" & i), Order1:=xlAscending,
Header:=xlNoGuess, _OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _DataOption1:=xlSortNormal
End If
Next i
End Sub
isabelle
garnote a écrit :Bonsoir et merci Isabelle,
Mais ça ne fonctionne pas ;-(
Et moi aussi j'avais tâté du CountIf !
Par mise en forme conditionnelle, je peux
jaunir les doublons, mais je voudrais plus.
Voici un autre exemple :
http://www.cijoint.fr/cjlink.php?file=cj200902/cij7l1rE88.xls
Bonsoir, Bonne nuit,
Serge
"isabelle" <mailto: a écrit dans le message de
news: <mailto:...salut Serge,
Sub Macro1()
Set plage = Selection
lgn = plage.Rows.Count
For Each c In plage
If Application.CountIf(plage, c) > 1 Then plage.Replace
What:=c, Replacement:=""Next
For i = 1 To lgn
If Application.CountA(plage.Rows(i)) >= 1 Then
plg = plage.Rows(i).SpecialCells(xlCellTypeConstants,
1).AddressRange(plg).Cut
Range("A" & i).Select
ActiveSheet.Paste
End If
Next
End Sub
isabelle
garnote a écrit :Bonjour,
Je sélectionne une plage simple contenant (exemple ) :
1 2 3 _ _
8 7 9 1 _
4 5 6 7 8
Les _ représentant des cellules vides.
Par macro, je veux éliminer tous les doublons
et obtenir comme nouvelle plage :
2 3 _ _ _
9 _ _ _ _
4 5 6 _ _
Doit pouvoir se généraliser pour une plage quelconque
dont chaque ligne commence par une série de nombres
suivi de cellules vides.La dernière ligne ne contient
jamais de cellules vides.
Serge