Sub Macro1() Dim liste() Set plg = Range("K2:A" & Range("K65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg x = x + 1 ReDim Preserve liste(x) liste(x) = c Next End Sub
isabelle
a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K et M. Je désire reprendre dans un array les valeurs visibles de la colonne D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire ça par moi-même d'où mon appek à l'aide.
Merci de votre collaboration.
Jean-Paul
bonjour Jean-Paul,
Sub Macro1()
Dim liste()
Set plg = Range("K2:A" &
Range("K65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
For Each c In plg
x = x + 1
ReDim Preserve liste(x)
liste(x) = c
Next
End Sub
isabelle
jean-paul.bataille@sfr.com a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K
et M.
Je désire reprendre dans un array les valeurs visibles de la colonne
D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire
ça
par moi-même d'où mon appek à l'aide.
Sub Macro1() Dim liste() Set plg = Range("K2:A" & Range("K65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg x = x + 1 ReDim Preserve liste(x) liste(x) = c Next End Sub
isabelle
a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K et M. Je désire reprendre dans un array les valeurs visibles de la colonne D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire ça par moi-même d'où mon appek à l'aide.
Merci de votre collaboration.
Jean-Paul
isabelle
petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1() Dim liste() x = 1 Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg ReDim Preserve liste(x) liste(x) = c x = x + 1 Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) = Application.Transpose(liste) End Sub
isabelle
a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K et M. Je désire reprendre dans un array les valeurs visibles de la colonne D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire ça par moi-même d'où mon appek à l'aide.
Merci de votre collaboration.
Jean-Paul
petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1()
Dim liste()
x = 1
Set plg = Sheets("Feuil1").Range("A2:A" &
Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
For Each c In plg
ReDim Preserve liste(x)
liste(x) = c
x = x + 1
Next
Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) =
Application.Transpose(liste)
End Sub
isabelle
jean-paul.bataille@sfr.com a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K
et M.
Je désire reprendre dans un array les valeurs visibles de la colonne
D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire
ça
par moi-même d'où mon appek à l'aide.
petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1() Dim liste() x = 1 Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg ReDim Preserve liste(x) liste(x) = c x = x + 1 Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) = Application.Transpose(liste) End Sub
isabelle
a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K et M. Je désire reprendre dans un array les valeurs visibles de la colonne D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire ça par moi-même d'où mon appek à l'aide.
Merci de votre collaboration.
Jean-Paul
MichDenis
Bonjour Isabelle,
Si je peux me permettre ... juste pour le plaisir !
Si tu déclares ta variable x as long Tu n'aurais pas besoin de lui affecter la valeur 1
Tu pourrais simplement faire ceci :
For Each c In plg x = x + 1 ReDim Preserve liste(x) liste(x) = c Next
Et pour la copie des données : Sheets("Feuil2").Range("A1").Resize(x) = _ Application.Transpose(liste)
"isabelle" a écrit dans le message de groupe de discussion : # petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1() Dim liste() x = 1 Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg ReDim Preserve liste(x) liste(x) = c x = x + 1 Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) Application.Transpose(liste) End Sub
isabelle
a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K et M. Je désire reprendre dans un array les valeurs visibles de la colonne D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire ça par moi-même d'où mon appek à l'aide.
Merci de votre collaboration.
Jean-Paul
Bonjour Isabelle,
Si je peux me permettre ... juste pour le plaisir !
Si tu déclares ta variable x as long
Tu n'aurais pas besoin de lui affecter la valeur 1
Tu pourrais simplement faire ceci :
For Each c In plg
x = x + 1
ReDim Preserve liste(x)
liste(x) = c
Next
Et pour la copie des données :
Sheets("Feuil2").Range("A1").Resize(x) = _
Application.Transpose(liste)
"isabelle" <i@v> a écrit dans le message de groupe de discussion :
#mx6myFuJHA.5172@TK2MSFTNGP04.phx.gbl...
petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1()
Dim liste()
x = 1
Set plg = Sheets("Feuil1").Range("A2:A" &
Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
For Each c In plg
ReDim Preserve liste(x)
liste(x) = c
x = x + 1
Next
Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) Application.Transpose(liste)
End Sub
isabelle
jean-paul.bataille@sfr.com a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K
et M.
Je désire reprendre dans un array les valeurs visibles de la colonne
D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire
ça
par moi-même d'où mon appek à l'aide.
Si je peux me permettre ... juste pour le plaisir !
Si tu déclares ta variable x as long Tu n'aurais pas besoin de lui affecter la valeur 1
Tu pourrais simplement faire ceci :
For Each c In plg x = x + 1 ReDim Preserve liste(x) liste(x) = c Next
Et pour la copie des données : Sheets("Feuil2").Range("A1").Resize(x) = _ Application.Transpose(liste)
"isabelle" a écrit dans le message de groupe de discussion : # petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1() Dim liste() x = 1 Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg ReDim Preserve liste(x) liste(x) = c x = x + 1 Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) Application.Transpose(liste) End Sub
isabelle
a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K et M. Je désire reprendre dans un array les valeurs visibles de la colonne D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire ça par moi-même d'où mon appek à l'aide.
Merci de votre collaboration.
Jean-Paul
isabelle
salut Denis,
c'était un résidu de construction, je sais que c'est mieux de declarer, mais même sans déclarer x tout fonctionne bien comme ça , variant est considéré ici comme double et double vaut 1,79769313486232E308
Sub Macro1() Dim liste() Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg ReDim Preserve liste(x) liste(x) = c x = x + 1 Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) = Application.Transpose(liste) End Sub
en parlant de déclarer, t'as fais tes impot ? ;-)
isabelle
MichDenis a écrit :
Bonjour Isabelle,
Si je peux me permettre ... juste pour le plaisir !
Si tu déclares ta variable x as long Tu n'aurais pas besoin de lui affecter la valeur 1
Tu pourrais simplement faire ceci :
For Each c In plg x = x + 1 ReDim Preserve liste(x) liste(x) = c Next
Et pour la copie des données : Sheets("Feuil2").Range("A1").Resize(x) = _ Application.Transpose(liste)
"isabelle" a écrit dans le message de groupe de discussion : # petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1() Dim liste() x = 1 Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg ReDim Preserve liste(x) liste(x) = c x = x + 1 Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) > Application.Transpose(liste) End Sub
isabelle
a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K et M. Je désire reprendre dans un array les valeurs visibles de la colonne D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire ça par moi-même d'où mon appek à l'aide.
Merci de votre collaboration.
Jean-Paul
salut Denis,
c'était un résidu de construction, je sais que c'est mieux de declarer,
mais même sans déclarer x tout fonctionne bien comme ça ,
variant est considéré ici comme double et double vaut 1,79769313486232E308
Sub Macro1()
Dim liste()
Set plg = Sheets("Feuil1").Range("A2:A" &
Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
For Each c In plg
ReDim Preserve liste(x)
liste(x) = c
x = x + 1
Next
Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) =
Application.Transpose(liste)
End Sub
en parlant de déclarer, t'as fais tes impot ? ;-)
isabelle
MichDenis a écrit :
Bonjour Isabelle,
Si je peux me permettre ... juste pour le plaisir !
Si tu déclares ta variable x as long
Tu n'aurais pas besoin de lui affecter la valeur 1
Tu pourrais simplement faire ceci :
For Each c In plg
x = x + 1
ReDim Preserve liste(x)
liste(x) = c
Next
Et pour la copie des données :
Sheets("Feuil2").Range("A1").Resize(x) = _
Application.Transpose(liste)
"isabelle" <i@v> a écrit dans le message de groupe de discussion :
#mx6myFuJHA.5172@TK2MSFTNGP04.phx.gbl...
petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1()
Dim liste()
x = 1
Set plg = Sheets("Feuil1").Range("A2:A" &
Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
For Each c In plg
ReDim Preserve liste(x)
liste(x) = c
x = x + 1
Next
Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) > Application.Transpose(liste)
End Sub
isabelle
jean-paul.bataille@sfr.com a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K
et M.
Je désire reprendre dans un array les valeurs visibles de la colonne
D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire
ça
par moi-même d'où mon appek à l'aide.
c'était un résidu de construction, je sais que c'est mieux de declarer, mais même sans déclarer x tout fonctionne bien comme ça , variant est considéré ici comme double et double vaut 1,79769313486232E308
Sub Macro1() Dim liste() Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg ReDim Preserve liste(x) liste(x) = c x = x + 1 Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) = Application.Transpose(liste) End Sub
en parlant de déclarer, t'as fais tes impot ? ;-)
isabelle
MichDenis a écrit :
Bonjour Isabelle,
Si je peux me permettre ... juste pour le plaisir !
Si tu déclares ta variable x as long Tu n'aurais pas besoin de lui affecter la valeur 1
Tu pourrais simplement faire ceci :
For Each c In plg x = x + 1 ReDim Preserve liste(x) liste(x) = c Next
Et pour la copie des données : Sheets("Feuil2").Range("A1").Resize(x) = _ Application.Transpose(liste)
"isabelle" a écrit dans le message de groupe de discussion : # petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1() Dim liste() x = 1 Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg ReDim Preserve liste(x) liste(x) = c x = x + 1 Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) > Application.Transpose(liste) End Sub
isabelle
a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K et M. Je désire reprendre dans un array les valeurs visibles de la colonne D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire ça par moi-même d'où mon appek à l'aide.
Merci de votre collaboration.
Jean-Paul
MichDenis
j'ajouterai ceci ...
si en haut du module, on ne retrouve pas ceci : Option Base 1
on doit remplacer : ReDim Preserve liste(x) Par ReDim Preserve liste(1 to x)
Pour que les modifications proposées se tiennent ! ;-)
"MichDenis" a écrit dans le message de groupe de discussion :
Bonjour Isabelle,
Si je peux me permettre ... juste pour le plaisir !
Si tu déclares ta variable x as long Tu n'aurais pas besoin de lui affecter la valeur 1
Tu pourrais simplement faire ceci :
For Each c In plg x = x + 1 ReDim Preserve liste(x) liste(x) = c Next
Et pour la copie des données : Sheets("Feuil2").Range("A1").Resize(x) = _ Application.Transpose(liste)
"isabelle" a écrit dans le message de groupe de discussion : # petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1() Dim liste() x = 1 Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg ReDim Preserve liste(x) liste(x) = c x = x + 1 Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) Application.Transpose(liste) End Sub
isabelle
a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K et M. Je désire reprendre dans un array les valeurs visibles de la colonne D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire ça par moi-même d'où mon appek à l'aide.
Merci de votre collaboration.
Jean-Paul
j'ajouterai ceci ...
si en haut du module, on ne retrouve pas ceci :
Option Base 1
on doit remplacer :
ReDim Preserve liste(x)
Par
ReDim Preserve liste(1 to x)
Pour que les modifications proposées se tiennent !
;-)
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de groupe de discussion :
2F344FC0-F90C-4CB2-B3F9-2A3CA27A1595@microsoft.com...
Bonjour Isabelle,
Si je peux me permettre ... juste pour le plaisir !
Si tu déclares ta variable x as long
Tu n'aurais pas besoin de lui affecter la valeur 1
Tu pourrais simplement faire ceci :
For Each c In plg
x = x + 1
ReDim Preserve liste(x)
liste(x) = c
Next
Et pour la copie des données :
Sheets("Feuil2").Range("A1").Resize(x) = _
Application.Transpose(liste)
"isabelle" <i@v> a écrit dans le message de groupe de discussion :
#mx6myFuJHA.5172@TK2MSFTNGP04.phx.gbl...
petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1()
Dim liste()
x = 1
Set plg = Sheets("Feuil1").Range("A2:A" &
Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
For Each c In plg
ReDim Preserve liste(x)
liste(x) = c
x = x + 1
Next
Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) Application.Transpose(liste)
End Sub
isabelle
jean-paul.bataille@sfr.com a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K
et M.
Je désire reprendre dans un array les valeurs visibles de la colonne
D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire
ça
par moi-même d'où mon appek à l'aide.
si en haut du module, on ne retrouve pas ceci : Option Base 1
on doit remplacer : ReDim Preserve liste(x) Par ReDim Preserve liste(1 to x)
Pour que les modifications proposées se tiennent ! ;-)
"MichDenis" a écrit dans le message de groupe de discussion :
Bonjour Isabelle,
Si je peux me permettre ... juste pour le plaisir !
Si tu déclares ta variable x as long Tu n'aurais pas besoin de lui affecter la valeur 1
Tu pourrais simplement faire ceci :
For Each c In plg x = x + 1 ReDim Preserve liste(x) liste(x) = c Next
Et pour la copie des données : Sheets("Feuil2").Range("A1").Resize(x) = _ Application.Transpose(liste)
"isabelle" a écrit dans le message de groupe de discussion : # petit ajout pour récupérer la liste sur la feuille 2 :
Sub Macro1() Dim liste() x = 1 Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg ReDim Preserve liste(x) liste(x) = c x = x + 1 Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) Application.Transpose(liste) End Sub
isabelle
a écrit :
Bonjour,
J'ai une table .xls, je filtre sur une ou plusieurs colonnes disons K et M. Je désire reprendre dans un array les valeurs visibles de la colonne D.
Je dois avoir besoin de repos car je ne trouve pas le moyen de faire ça par moi-même d'où mon appek à l'aide.
Merci de votre collaboration.
Jean-Paul
MichDenis
| en parlant de déclarer, t'as fais tes impot ? ;-)
Absolument pas, la ministre des finances vient de démissionner il n'y aura personne pour le savoir ;-)))
J'était de bonne humeur juste qu'à maintenant !!! Je vais le rester jusqu'au 30 avril. ;-)
| en parlant de déclarer, t'as fais tes impot ? ;-)
Absolument pas, la ministre des finances vient de démissionner
il n'y aura personne pour le savoir ;-)))
J'était de bonne humeur juste qu'à maintenant !!!
Je vais le rester jusqu'au 30 avril. ;-)
Absolument pas, la ministre des finances vient de démissionner
c'est ça qu'arrive quand la soupe devient trop chaude, ...la vache à lait est runner par des con...ça va pété ! isabelle
jean-paul.bataille
Bonjour Isabelle et Michdenis,
La discussion est intéressante : détail certe mais c'est la diff qui fait la procédure pro. Ici le propos est d'aider - ce qui est fait MERCI Isabelle - et non pas de faire le boulot de l'autre.
Dans un premier temps, vu l'urgence je prends la seconde proposition d'Isabelle.
Une question complémentaire : y a t'il un moyen d'éviter les doublons lorsque l'on constitue le tableau ,
Merci de votre collaboration à tous les deux.
Bonjour Isabelle et Michdenis,
La discussion est intéressante : détail certe mais c'est la diff qui
fait la procédure pro.
Ici le propos est d'aider - ce qui est fait MERCI Isabelle - et non
pas de faire le boulot de l'autre.
Dans un premier temps, vu l'urgence je prends la seconde proposition
d'Isabelle.
Une question complémentaire : y a t'il un moyen d'éviter les doublons
lorsque l'on constitue le tableau ,
La discussion est intéressante : détail certe mais c'est la diff qui fait la procédure pro. Ici le propos est d'aider - ce qui est fait MERCI Isabelle - et non pas de faire le boulot de l'autre.
Dans un premier temps, vu l'urgence je prends la seconde proposition d'Isabelle.
Une question complémentaire : y a t'il un moyen d'éviter les doublons lorsque l'on constitue le tableau ,
Merci de votre collaboration à tous les deux.
jean-paul.bataille
Voici ma solution pour éliminer les doublons :
For Each c In plg ReDim Preserve liste(x) liste(x) = c If x > 1 Then If liste(x) = liste(x - 1) Then ReDim Preserve liste(UBound(liste) - 1) x = x - 1 End If End If x = x + 1 Next
En fait je redimensionne le tableau à la taille précédente, lorsque j e rencontre une valeur déjà présente, et je décrémente aussi le compteur. Je ne peux faire cela que parce que mes valeurs sont groupées.
Voici ma solution pour éliminer les doublons :
For Each c In plg
ReDim Preserve liste(x)
liste(x) = c
If x > 1 Then
If liste(x) = liste(x - 1) Then
ReDim Preserve liste(UBound(liste) - 1)
x = x - 1
End If
End If
x = x + 1
Next
En fait je redimensionne le tableau à la taille précédente, lorsque j e
rencontre une valeur déjà présente,
et je décrémente aussi le compteur.
Je ne peux faire cela que parce que mes valeurs sont groupées.
For Each c In plg ReDim Preserve liste(x) liste(x) = c If x > 1 Then If liste(x) = liste(x - 1) Then ReDim Preserve liste(UBound(liste) - 1) x = x - 1 End If End If x = x + 1 Next
En fait je redimensionne le tableau à la taille précédente, lorsque j e rencontre une valeur déjà présente, et je décrémente aussi le compteur. Je ne peux faire cela que parce que mes valeurs sont groupées.
isabelle
bonjour Jean-Paul,
Sub Macro1() Dim liste() Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg On Error Resume Next If IsError(Application.Match(c, liste, 0)) And c > 1 Then ReDim Preserve liste(x) liste(x) = c x = x + 1 End If Err.Clear Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) = Application.Transpose(liste) End Sub
isabelle
a écrit :
Voici ma solution pour éliminer les doublons :
For Each c In plg ReDim Preserve liste(x) liste(x) = c If x > 1 Then If liste(x) = liste(x - 1) Then ReDim Preserve liste(UBound(liste) - 1) x = x - 1 End If End If x = x + 1 Next
En fait je redimensionne le tableau à la taille précédente, lorsque je rencontre une valeur déjà présente, et je décrémente aussi le compteur. Je ne peux faire cela que parce que mes valeurs sont groupées.
bonjour Jean-Paul,
Sub Macro1()
Dim liste()
Set plg = Sheets("Feuil1").Range("A2:A" &
Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
For Each c In plg
On Error Resume Next
If IsError(Application.Match(c, liste, 0)) And c > 1 Then
ReDim Preserve liste(x)
liste(x) = c
x = x + 1
End If
Err.Clear
Next
Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) =
Application.Transpose(liste)
End Sub
isabelle
jean-paul.bataille@sfr.com a écrit :
Voici ma solution pour éliminer les doublons :
For Each c In plg
ReDim Preserve liste(x)
liste(x) = c
If x > 1 Then
If liste(x) = liste(x - 1) Then
ReDim Preserve liste(UBound(liste) - 1)
x = x - 1
End If
End If
x = x + 1
Next
En fait je redimensionne le tableau à la taille précédente, lorsque je
rencontre une valeur déjà présente,
et je décrémente aussi le compteur.
Je ne peux faire cela que parce que mes valeurs sont groupées.
Sub Macro1() Dim liste() Set plg = Sheets("Feuil1").Range("A2:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible) For Each c In plg On Error Resume Next If IsError(Application.Match(c, liste, 0)) And c > 1 Then ReDim Preserve liste(x) liste(x) = c x = x + 1 End If Err.Clear Next Sheets("Feuil2").Range("A1").Resize(UBound(liste) + 1) = Application.Transpose(liste) End Sub
isabelle
a écrit :
Voici ma solution pour éliminer les doublons :
For Each c In plg ReDim Preserve liste(x) liste(x) = c If x > 1 Then If liste(x) = liste(x - 1) Then ReDim Preserve liste(UBound(liste) - 1) x = x - 1 End If End If x = x + 1 Next
En fait je redimensionne le tableau à la taille précédente, lorsque je rencontre une valeur déjà présente, et je décrémente aussi le compteur. Je ne peux faire cela que parce que mes valeurs sont groupées.