Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
bonjour,
une possibilité parmi d'autres. Celle-ci présente l'avantage de laisser sur la même feuille les résultats présentés comme tu le souhaites. Je suis cependant parti du principe que tu as un filtre automatique sur tes données (avec des entetes en ligne 1) et que ces dernières ne commencent qu'en ligne A2 et qu'elles sont présentées en colonne A les occurences et en colonne B les valeurs. Par ailleurs j'ai Excel 2000 et je ne sais pas si sur Excel97 la méthode showAlldata existe mais comme tu n'avais précisé ta version d'Excel.
Dim coll1 As New Collection, coll2 As New Collection, ws As Worksheet Dim I As Long, J As Long, K As Long, ligneoccur As Long, c As Range Dim plagefiltre As Range, plagefiltrevisible As Range
Set ws = ActiveSheet
On Error Resume Next
ws.ShowAllData
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row) coll1.Add c.Value, CStr(c.Value) Next On Error GoTo 0
For Each c In plagefiltrevisible On Error Resume Next coll2.Add c.Value, CStr(c.Value) Next On Error GoTo 0
For J = 2 To coll2.Count Cells(ligneoccur, J + 1).Value = coll2(J) Next
Set coll2 = Nothing
For J = plagefiltrevisible.Areas.Count To 1 Step -1 For K = plagefiltrevisible.Areas(J).Cells.Count To 1 Step -1 If plagefiltrevisible.Areas(J).Cells(K).Row <> ligneoccur Then plagefiltrevisible.Areas(J).Cells(K).EntireRow.Delete Next Next
Next
Set coll1 = Nothing ws.ShowAllData
A+
Bonjour,
Ayant deux colonnes A et B avec des valeurs qui peuvent se répéter de la façon suivante :
a1 2 b1 8 a1 5 b1 15 a1 2 b1 15 a1 10 b1 15 b1 8
comment faire pour avoir :
a1 2 5 10 b1 8 15
Autrement dit une transposition des colonnes en ligne et un recoupement des données pour éviter une répétition des valeurs ?
merci
Travis
bonjour,
une possibilité parmi d'autres. Celle-ci présente l'avantage de laisser
sur la même feuille les résultats présentés comme tu le souhaites. Je
suis cependant parti du principe que tu as un filtre automatique sur tes
données (avec des entetes en ligne 1) et que ces dernières ne
commencent qu'en ligne A2 et qu'elles sont présentées en colonne A les
occurences et en colonne B les valeurs.
Par ailleurs j'ai Excel 2000 et je ne sais pas si sur Excel97 la méthode
showAlldata existe mais comme tu n'avais précisé ta version d'Excel.
Dim coll1 As New Collection, coll2 As New Collection, ws As Worksheet
Dim I As Long, J As Long, K As Long, ligneoccur As Long, c As Range
Dim plagefiltre As Range, plagefiltrevisible As Range
Set ws = ActiveSheet
On Error Resume Next
ws.ShowAllData
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row)
coll1.Add c.Value, CStr(c.Value)
Next
On Error GoTo 0
For Each c In plagefiltrevisible
On Error Resume Next
coll2.Add c.Value, CStr(c.Value)
Next
On Error GoTo 0
For J = 2 To coll2.Count
Cells(ligneoccur, J + 1).Value = coll2(J)
Next
Set coll2 = Nothing
For J = plagefiltrevisible.Areas.Count To 1 Step -1
For K = plagefiltrevisible.Areas(J).Cells.Count To 1 Step -1
If plagefiltrevisible.Areas(J).Cells(K).Row <> ligneoccur Then
plagefiltrevisible.Areas(J).Cells(K).EntireRow.Delete
Next
Next
Next
Set coll1 = Nothing
ws.ShowAllData
A+
Bonjour,
Ayant deux colonnes A et B avec des valeurs qui peuvent se répéter de la
façon suivante :
a1 2
b1 8
a1 5
b1 15
a1 2
b1 15
a1 10
b1 15
b1 8
comment faire pour avoir :
a1 2 5 10
b1 8 15
Autrement dit une transposition des colonnes en ligne et un recoupement des
données pour éviter une répétition des valeurs ?
une possibilité parmi d'autres. Celle-ci présente l'avantage de laisser sur la même feuille les résultats présentés comme tu le souhaites. Je suis cependant parti du principe que tu as un filtre automatique sur tes données (avec des entetes en ligne 1) et que ces dernières ne commencent qu'en ligne A2 et qu'elles sont présentées en colonne A les occurences et en colonne B les valeurs. Par ailleurs j'ai Excel 2000 et je ne sais pas si sur Excel97 la méthode showAlldata existe mais comme tu n'avais précisé ta version d'Excel.
Dim coll1 As New Collection, coll2 As New Collection, ws As Worksheet Dim I As Long, J As Long, K As Long, ligneoccur As Long, c As Range Dim plagefiltre As Range, plagefiltrevisible As Range
Set ws = ActiveSheet
On Error Resume Next
ws.ShowAllData
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row) coll1.Add c.Value, CStr(c.Value) Next On Error GoTo 0
For Each c In plagefiltrevisible On Error Resume Next coll2.Add c.Value, CStr(c.Value) Next On Error GoTo 0
For J = 2 To coll2.Count Cells(ligneoccur, J + 1).Value = coll2(J) Next
Set coll2 = Nothing
For J = plagefiltrevisible.Areas.Count To 1 Step -1 For K = plagefiltrevisible.Areas(J).Cells.Count To 1 Step -1 If plagefiltrevisible.Areas(J).Cells(K).Row <> ligneoccur Then plagefiltrevisible.Areas(J).Cells(K).EntireRow.Delete Next Next
Next
Set coll1 = Nothing ws.ShowAllData
A+
Bonjour,
Ayant deux colonnes A et B avec des valeurs qui peuvent se répéter de la façon suivante :
a1 2 b1 8 a1 5 b1 15 a1 2 b1 15 a1 10 b1 15 b1 8
comment faire pour avoir :
a1 2 5 10 b1 8 15
Autrement dit une transposition des colonnes en ligne et un recoupement des données pour éviter une répétition des valeurs ?