Microsoft 365 Comment supprimer les doublons et plus

brabra74

XLDnaute Nouveau
Bonjour a tous, je sais comment supprimer les doublons, mais je veux aussi mettre la référence dans la case suivante dans la référence principale. je met un fichier excel pour clarifier la chose, merci a tous
 

Pièces jointes

  • test doublons.xlsx
    16.9 KB · Affichages: 7

laurent950

XLDnaute Accro
Bonjour @job75

Je suis entrain de tester la variable collection, c'est dommage que l'on ne puisse pas directement redimensionner le tableau depuis cette variable collection :

je suis obligé de passé par un tableau intermédiaire.
tbl = Coll.Item(CStr(Cells(i, 1)))
ReDim Preserve tbl(LBound(tbl) To UBound(tbl) + 1)

Je pensais passer comme cela mais cela ne fonctionne pas ?
ReDim Preserve Coll.Item(CStr(Cells(i, 1)))(LBound(Coll.Item(CStr(Cells(i, 1)))) To UBound(Coll.Item(CStr(Cells(i, 1)))) + 1)

Vous avez une idée @job75 de cela ?
 

mapomme

XLDnaute Barbatruc
Supporter XLD
je sais pas c'est une idée
Je vas creuser :rolleyes:
il me viens une idée je sais pas tu va me dire
tu redim preserve au fur et à mesure le count rox et colonne dynamiquement
ne pourrait ton pas rredim preserve des le depart le rows.count et le max de colonne
compter les c au fur et a mesure et redimer en dernier les colonne avec c
histoire de gagner encore un peu de temps
J'ai testé.
Pour cela, j'ai fait un passage à vide dans t et calculer le nombre max de colonne.
Pour 185.000 lignes, ça ne fait vraiment pas une grosse différence avec le préserve.
Je ne fournirai pas le fichier. Je ne l'ai pas sauvegardé (ma souris a fourché sur la boite de dialogue demandant la sauvegarde 🤨)
 

patricktoulon

XLDnaute Barbatruc
petite parenthèse
juste pour m'amuser un peu
un dico pour Mac façon bucheron😂😂😂

VB:
Public Type aa: index As Long: item As String: End Type
Public Type Dico: items() As Variant: keys() As Variant: keyVal() As aa: Count As Long
End Type
Sub test()
    Dim D As Dico
    tabl = [A1:B10].Value
    ReDim Preserve D.keyVal(1 To Application.Max([A1:A10]))
    ReDim Preserve D.keys(1 To UBound(tabl))
    ReDim Preserve D.items(1 To UBound(tabl))

    For i = 1 To UBound(tabl)
        With D.keyVal(tabl(i, 1)):
            .item = .item & " |" & tabl(i, 2)
            If .index = 0 Then a = a + 1: .index = a:
            D.keys(.index) = tabl(i, 1)
            D.items(.index) = .item
        End With
    Next
    ReDim Preserve D.keys(1 To a)
    ReDim Preserve D.items(1 To a)
    D.Count = a

    MsgBox "nombre d'element dans le dico : " & D.Count & vbCrLf & _
         "           les clés " & vbCrLf & Join(D.keys, vbCrLf) & vbCrLf & _
           "          les items " & vbCrLf & Join(D.items, vbCrLf)

    MsgBox "pour 23 par exemple les valeurs sont " & vbCrLf & D.keyVal(23).item
End Sub
LoL😂🤣😂
faut bien rigoler non?
 

patricktoulon

XLDnaute Barbatruc
c'est une ébauche mais ça marche comme un dico
je pourrais même ajouter un propertie du genre d.ToTable et compiler en tableau

la seule différence avec le dico c'est principe keys(est un array) et keyVal(une clé)

et sans collection sans doublons sans même comparer si il existe juste par indexation;)
 

Discussions similaires

Réponses
10
Affichages
415

Statistiques des forums

Discussions
312 188
Messages
2 086 028
Membres
103 100
dernier inscrit
erym64300