XL 2016 retrouver toutes les combinaison Excel existante dans 2 colonnes

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

AhmedLounes

XLDnaute Nouveau
Bonjour,

Besoin d'aide !!!
Je souhaite récupérer et faire apparaitre dans une autre feuille de mon fichier toutes les combinaisons EXISTANTE et non possible entre les ville de départ et arrivée.

Merci d'avance.

Cordialement.
 

Pièces jointes

Bonjour @AhmedLounes,

C'est une bonne réponse de @djidji59430 que je vais proposer d'améliorer en "répétant les étiquettes d'élément" (clic sur champ ville > Paramètres de champs)
1610528590960.png

Pour que ça donne ça :
1610528709309.png
 
Bonjour à tous 🙂,

Une autre méthode :
  • sélectionner la plage (avec les en-têtes) ou bien copier la plage ailleurs puis sélectionner la plage copiée si vous ne voulez pas toucher à la zone source
  • menu Données / Supprimer les doublons
  • cocher les cases adéquates puis OK
1610533567619.png
 
Bonjour AhmedLounes, djidji59430, Exl-Noob, mapomme,

Oui mapomme et en VBA c'est très simple :
VB:
Sub MAJ()
Application.ScreenUpdating = False
[D:E].Copy [G1] 'copier-coller
[G:H].Sort [G1], xlAscending, [H1], , xlAscending, Header:=xlYes 'tri sur 2 colonnes
[G:H].RemoveDuplicates Array(1, 2), xlYes 'supprime les paires en doublon
End Sub
A+
 

Pièces jointes

Bonjour @job75 🙂,

D'habitude, je fais ce que tu as codé : Tri puis suppression des doublons.

J'ai tenté l'expérience sur 750 000 lignes de données. La version avec tri est bien plus lente que la version sans tri. C’est bizarre, il m'avait semblé que le tri améliorait les performances sur des fichiers et/ou versions antérieures.
 

Pièces jointes

Re,

J'ai ajouté une troisième méthode via dictionary. C'est la plus rapide.
Je pense que les résultat sont très largement influencés par le fait que le nombre de lignes restantes est très faible (11). De ce fait la recherche sur le dictionary est très très rapide.
 

Pièces jointes

Le tri suivi d'un traitement du tableau VBA est très rapide :
VB:
Sub MajAvecTriTableauVBA()
Dim t, tablo, x$, i&, y$, z$, n&
    t = Timer
    Application.ScreenUpdating = False
    [D:E].Copy [G1] 'copier-coller
    [G:H].Sort [G1], xlAscending, [H1], , xlAscending, Header:=xlYes 'tri sur 2 colonnes
    tablo = [G1].CurrentRegion 'matrice, plus rapide
    x = tablo(1, 1) & tablo(1, 2)
    For i = 2 To UBound(tablo)
        y = tablo(i, 1): z = tablo(i, 2)
        If x <> y & z Then
            n = n + 1
            tablo(n, 1) = y: tablo(n, 2) = z
        End If
        x = y & z
    Next
    '---restitution---
    With [G2]
        If n Then .Resize(n, 2) = tablo
        .Offset(n).Resize(Rows.Count - n - .Row + 1, 2).ClearContents 'RAZ en dessous
    End With
    MsgBox Format(Timer - t, "0.0\ sec.")
End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour