Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
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
 

patricktoulon

XLDnaute Barbatruc
re
il y a maintenant la properties (Table)
d.keys = array
d.items = array
d.keyval(valeur).item l'item par la valeur(comme le dictionary)
d.table = le tableau

lol
 

Pièces jointes

  • brabra74 - En ligne- v1a +dicoMac.xlsm
    62.2 KB · Affichages: 2

Discussions similaires

Réponses
10
Affichages
424
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…