Aide tri personnalise

Bonsoir

j'essaye d'expliquer mon Problème.

Dans un fichier, j'ai deux feuilles avec une liste de 88 données pour chaque feuille.

le premier fichier a 1 colonne le second a 6 colonnes.

je voudrais mettre dans l'ordre la feuille 2 selon le fichier 1.

est il possible de le faire ? si oui

pouvez vous m'aider ?

Merci

15test-liste.xlsm (38.72 Ko)

je remonte mon probleme

desole

Pour apporter un peu plus de précision.

Sur la Feuille 1 j'ai les voies sur la colonne A je voudrais que cette colonne A que je puisse faire le tri comme celui de la feuille 2 colonne D .

Cette manipulation est elle possible ?

Merci

Bonjour

Un essai à tester, si j'ai bien compris.

Bye !

5test-liste-v1.xlsm (55.82 Ko)

Merci

je ne pense pas que ca soit cela.

Je vous donne un autre exemple

En faites il faut que la colonne I de ma feuille soit du meme ordre que la colonne C .

Pensez vous que cela soit faisable ?

j'ai change de formulaire et les 2 colonnes sont les même

6riols-34220.xlsx (9.58 Ko)

Merci

Bonjour je remonte le sujet desole

Pas possibilité de trouver une solution ?

Merci

Bonjour

Désolé mais je ne comprends pas ce que tu souhaites...

Bye !

Bonjour,

Dans le dernier fichier, sélectionner les cellules C3 à C57

Cliquer sur "Fichier/Options/Options Avancées"

Pratiquement en bas, cliquer sur "Modifier les listes personnalisées"

Puis sur "Importer"

revenir sur la feuille, sélectionner la cellule I3, cliquer sur Trier

Vérifier, dans ce cas présent, que "contient un en-tête" n'est pas validé

Cliquer sur "Ordre", à droite

et sélectionner la liste personnalisée..

Peut-être?

bonjour

je pense avoir compris qu'il fallait classer les communes par ordre alphabétique

3jeffy.xlsx (14.34 Ko)

cordialement

Non ce n'est pas cela désolé !

Je vous redonne un exemple.

En faites la feuille 1 est exactement le même que la feuille 2 "a trier"sauf que la feuille 1 est trier dans l'ordre et non la 2eme feuille.

Sauf que ma feuille "a trier" je voudrai le mettre dans le même ordre que la feuille 1

comprenez vous mon probleme ?

Merci

12test-excel.xlsx (12.73 Ko)

re

pas du tout ; mais j'ai vu qu'il y avait des doubles (rang tounée :35 et 28) , faut il les supprimer ?????

Non il ne faut pas les supprimer.

Sur ce test j'ai enlevé les noms et prénoms des clients

Merci

Re-,

Cette réponse m'était-elle également destinée?

As-tu essayé ce que je t'ai proposé?

Non ce n'est pas cela désolé !

oui désolé

Bonsoir à tous,

Bonsoir jefffycashweb,

Une piste :

A partir de la feuille 1, tu récupères via un Arraylist associé à chaque clé d'un dictionnaire, tous les rangs de la tournée figurant en colonne A.

Chaque clé (unique) du dictionnaire étant formée par la concaténation du contenu des colonnes B,C et D

Ex :

dico(14 BOULEVARD MARECHAL LECLERC|34500|BEZIERS)=[35,36,37,38]
dico(2 RUE SAINT VICTOR|34500|BEZIERS)=[20]

Puis en parcourant la feuille à trier, tu attribueras en colonne B le 1er élément de l'arraylist associé à sa clé, via la méthode Exists du dictionnaire.

Elément que tu supprimeras aussitôt à l'aide de la méthode RemoveAt de l'arraylist. On dépile l'arraylist en quelque sorte.

Une fois les différents rangs de la tournée attribués, tu n'auras plus qu'à trier manuellement ta liste en t'appuyant sur la colonne B.

Logique non

N'ayant pas Excel et VBA sous la main, je ne peux pas t'aider pour le moment

Klin89

Salut j'essaye dans la journée ta solution je te tiens au jus

Merci

ufff en faites je dois créer un macro ?

bonjour

enième version

18jeffy22.xlsx (17.69 Ko)

cordialement

Enième et dernière version hihihih

bravo et merci de vos aides

Re jefffycashweb,

Une version VBA :

Option Explicit
Sub test()
    Dim a, i As Long, dico As Object, txt As String
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    a = Sheets("Feuil1").Cells(1).CurrentRegion.Value
    For i = 2 To UBound(a, 1)
        txt = Join(Array(a(i, 2), a(i, 3), a(i, 4)), Chr(2))
        If Not dico.exists(txt) Then
            Set dico(txt) = CreateObject("System.Collections.ArrayList")
        End If
        dico(txt).Add a(i, 1)
    Next
    With Sheets("a trier").Cells(2, 3).CurrentRegion
        a = .Offset(, -1).Resize(, 4).Value
        For i = 1 To UBound(a, 1)
            txt = Join(Array(a(i, 2), a(i, 3), a(i, 4)), Chr(2))
            If dico.exists(txt) Then
                If dico(txt).Count Then
                    a(i, 1) = dico(txt)(0)
                    dico(txt).RemoveAt 0
                End If
            End If
        Next
        .Offset(, 6).Resize(, 4).Value = a
    End With
    Set dico = Nothing
End Sub

klin89

Rechercher des sujets similaires à "aide tri personnalise"