Lien_point_de_vente

Bonsoir

cela fait plusieurs jours que j'essaie de trouver une solution.

J'ai un nombre infini de tournées avec différents points de ventes livrés, je recherche le nombre de fois qu'un point de vente (x) est livré avec un point de vente (y) sur la même tournée.

Merci de votre aide.

13data.xlsx (288.87 Ko)

Bonjour,

C'est quoi les données d'entrées ? Et le résultat attendu ?

Cdlt.

Bonjour,

une proposition (ne fonctionne pas sur Mac)

Dim tr(1000, 1000), ntr 'tr =tableau résultat max 1000 clients, ntr nombre de clients effectivement présents dans tr
Sub aargh()
    Dim dict As Object ' dictionnaire cle=numero client, item= indice dans tableau tr
    ntr = 0
    Erase tr
    Set dict = CreateObject("scripting.dictionary")
    With Sheets("feuil1")
        dc = .Cells(2, Columns.Count).End(xlToLeft).Column 'dc = dernière colonne tournée
        For col = 3 To dc 'pout chaque tournée
            ' on  determine la dernière ligne contenant un numéro client
            dl = 3
            Do While Val(.Cells(dl, col)) <> 0
                dl = dl + 1
            Loop
            dl = dl - 1
            ' si plus d'un client on charge les N° de client dans la table t et incremente le compteur de chaque paire de clients présents dans la tournée
            If dl > 3 Then
                t = .Cells(3, col).Resize(dl - 2, 1)
                totalpaire t, tr, dict
            End If
        Next col
        ' on affiche le tableau résultat
        .Cells(17, 2).Resize(ntr + 1, ntr + 1) = tr
    End With
End Sub
Sub totalpaire(t, tr, dict As Object, Optional n = 1, Optional ni = 1, Optional fa = 0)
    'procedure recursive

    For i = ni To UBound(t) - (2 - n) 'on prend chaque numéro client à partir de l'indice ni
        cle = t(i, 1)
        If Not dict.exists(cle) Then 'client pas encore dans le dictionnaire, on l'ajoute au dictionnaire et au tableau résultat
            ntr = ntr + 1
            tr(ntr, 0) = cle
            tr(0, ntr) = cle
            dict(cle) = ntr
        End If
        If n = 1 Then ' si premier élément de la paire est choisi
            fa = cle
            totalpaire t, tr, dict, n + 1, i + 1, fa 'on choisit le second
            Else 'sinon les deux éléments de la paire sont choisis on incrémente les compteurs
                tr(dict(cle), dict(fa)) = tr(dict(cle), dict(fa)) + 1
                tr(dict(fa), dict(cle)) = tr(dict(fa), dict(cle)) + 1
            End If
        Next i
End Sub
7data-1.xlsm (42.69 Ko)

h2so4

Merci !

je vérifie les calculs et je te tiens au courant!!!

merci a toi et a jean pour votre professionnalisme et la rapidité dans la réponse!!!!

Ps tu peu m'expliquer le code vba pour pouvoir l'utiliser encore ? plaese

bonjour,

commentaires ajoutés dans le code voir ci-dessus

Bonjour,

Bonjour h2so4,

Une autre proposition avec Power Query. résultat sous forme de TCD.

Complément gratuit Microsof à installer (si possibilité ).

Pas de VBA.

Un volontaire pour vérifier les résultats ?

Cdlt.

7data-1.xlsx (85.34 Ko)

Bonjour;

merci pour l'aide mais j'essaie en vain de faire un tableau récapitulatif a partir des donnes ….

ex freq PDVx PDVy

ex 6 11567 12345

6 11567 12377

5 11267 34567

… ……… ……

Merci

5test.xlsx (81.06 Ko)

Bonjour,

une proposition

Sub aargh()
    Dim tr(1 To 100000, 1 To 2)
    t = Range("B2:DK115")
    For i = 2 To UBound(t, 1)
        For j = 2 To UBound(t, 2)
            If t(i, j) <> "" Then
                cle = t(i, 1) & "-" & t(1, j)
                k = k + 1
                tr(k, 1) = cle
                tr(k, 2) = t(i, j)
            End If
        Next j
    Next i
    Range("B120").Resize(k, 2) = tr
End Sub
4francbag.xlsm (56.95 Ko)

Merci h2S04

ca marche !!!!

mais :

t = Range("B2:DK115") oblige d'avoir une table de cette dimension.

Cordialement

bonjour,

tu peux aussi adapter la plage aux dimensions de ton tableau. Si tu m'indiques comment je peux déterminer les dimensions de tes tableaux à venir, je peux adapter le code. Puis-je toujours faire l'hypothèse que ton tableau commencera en B2 et qu'il n'y aura que ton tableau sur la feuille ?

Merci h2So4!!!

Problème résolu…..

Merci …

Cordialement

Merci!!!

Problème résolu….

Cordialement

Bonjour,

solution en repartant du problème initialement posé.

Rechercher des sujets similaires à "lien point vente"