Distancier dynamique

GUY rrr

XLDnaute Occasionnel
Bonjour le forum,

Je fais à nouveau appel à vos compétences afin de trouver un moyen "d'automatiser une tâche", à savoir:
J'ai un onglet BDD Adresse avec une liste triée sans doublons verticale qui s'incrémente au fil des entrées.
J'ai un onglet Distancier qui reprend en horizontal et vertical mes entrées de la BDD Adresse.
Je souhaite (je suppose par le biais d'une macro), que mon distancier s'incrémente dans l'ordre indiqué par la liste triée, tout en conservant les anciennes données déja présentes à l'intérieur de ce même distancier.
Je ne sais pas si ma demande est réalisable ou même claire :rolleyes:, mais pour une meilleure compréhension, je joins un fichier exemple avec le résultat à obtenir dans l'onglet Distancier 2 après avoir rajouté la donnée Red3.

Merci pour vos propositions.

Cordialement
 

Pièces jointes

  • Test distancier.xlsm
    10.9 KB · Affichages: 40

Rouge

XLDnaute Impliqué
Bonjour,

Ceci
VB:
Sub Report_dans_distancier()
    Dim f1 As Worksheet, f2 As Worksheet
    Dim DerLig_f1 As Long, i As Long
    Application.ScreenUpdating = False
    Set f1 = Sheets("BDD Adresse")
    Set f2 = Sheets("Distancier")
    DerLig_f1 = f1.Range("AD" & Rows.Count).End(xlUp).Row
    For i = 2 To DerLig_f1
        If f2.Cells(i, "A") <> f1.Cells(i, "AD") And f1.Cells(i, "AD") <> 0 Then
            f2.Rows(i).Insert Shift:=xlDown
            f2.Columns(i).Insert Shift:=xlToRight
            f2.Cells(i, "A") = f1.Cells(i, "AD")
            f2.Cells(1, i) = f1.Cells(i, "AD")
            f2.Cells(i - 1, i).Interior.ColorIndex = xlNone
            f2.Cells(i, i - 1).Interior.ColorIndex = xlNone
        End If
    Next i
    Set f1 = Nothing
    Set f2 = Nothing
End Sub

Cdlt
 

Pièces jointes

  • GUY rrr_Distancier dynamique.xlsm
    40.6 KB · Affichages: 9

GUY rrr

XLDnaute Occasionnel
Bonsoir Rouge, le forum,


Rouge, désolé pour ma réponse tardive, le temps commence à me manquer ...
Votre proposition correspond en tous points à ma demande.
J'adapte votre solution et vous fais un retour dés que possible.
Un très grand MERCI à vous 👍.

Bonne soirée
 

GUY rrr

XLDnaute Occasionnel
Bonjour Rouge, le forum,

Après adaptation, je me rends compte que j'ai oublié un détail dans ma demande, à savoir:
Est-il possible, dans le même esprit de la première demande, en décrémentant ma liste BDD Adresse, d'avoir le résultat inverse de la première demande sur l'onglet Distancier ?

Merci pour votre retour.

Cordialement
 

GUY rrr

XLDnaute Occasionnel
Rouge, merci pour votre retour.

Je me suis très certainement mal exprimé ... 😶, la liste présente en BDD Adresse s'incrémente à 98% et peut être amenée à "perdre des données" (soit retirées, soit remplacées mais toujours triées de A à Z).
Ma question est de savoir si lorsque des données sont retirées dans la liste BDD Adresse, (de la même façon qu'elles sont ajoutées dans cette même liste), elles peuvent l'être aussi dans l'onglet Distancier ?

En revanche, si elles sont remplacées, je ne suis pas persuadé que cela puisse être possible ... car il faudrait que les données kilométriques présentes dans l'onglet Distancier soient assimilées, affiliées, aux données de la BDD Adresse. Cela me semble compliqué ... Si le coeur vous en dit, je pourrais vous fournir un autre fichier exemple avec le résultat à obtenir en cas de remplacement de donnée.

Afin d'avoir une meilleure compréhension de ma demande pour le retrait de données, je joins un fichier exemple sur le même principe que le premier.

En souhaitant avoir été plus clair que précédemment :cool:
 

Pièces jointes

  • GUY rrr_Distancier dynamique2.xlsm
    38.5 KB · Affichages: 6

Rouge

XLDnaute Impliqué
Quand vous dites qu'une donnée est retirée, qu'entendez-vous par retirée?
la ligne est-elle supprimée ou la donnée est-elle simplement effacée?

J'ai traité comme si la ligne était supprimée.
 

Pièces jointes

  • Copie de GUY rrr_Distancier dynamique2.xlsm
    41 KB · Affichages: 9

GUY rrr

XLDnaute Occasionnel
Rouge, votre solution me convient 👍.

Dans l'idéal, est-il possible de n'avoir aucun bouton réunissant les deux macros effectuant ainsi une MAJ continue dans un sens ou dans l'autre. Ce serait le top car l'automatisation de la tâche serait complète.

Merci pour votre retour
 

Rouge

XLDnaute Impliqué
Ok, alors voici, dans un premier temps, il faut supprimer toutes les lignes contenant un 0.

Ensuite, j'ai pris la cellule AF1 pour mémoriser le nombre de lignes remplies, c'est à partir de cette valeur si le programme doit incrémenter ou décrémenter, cette valeur s'adaptera d'elle même suivant les actions qui auront été faites.

Lorsque vous modifierai la colonne AD, faites un DOUBLE-CLIC sur l'une des valeurs.

A tester
 

Pièces jointes

  • GUY rrr_Distancier dynamique_3.xlsm
    42.5 KB · Affichages: 6

GUY rrr

XLDnaute Occasionnel
Rouge, votre procédure me convient, mais à l'épreuve, il semblerait que le distancier ne se comporte pas de manière souhaitée. Je pense que cela est dû au fait que vous traitiez la liste en BDD Adresse comme si une ou plusieurs lignes étaient supprimées et non effacées ... Je sais que vous m'avez déjà posé la question et lors de mes essais avec votre fichier du post7, cela fonctionnait en effaçant les données :oops:, donc je n'ai pas voulu à ce moment vous solliciter de trop sauf que maintenant, avec ma nouvelle demande, il semblerait qu'il y ai dysfonction.

Vous serait-il possible, dans la limite de votre disponibilité, de solutionner ceci ?

Merci pour votre soutien.
 

GUY rrr

XLDnaute Occasionnel
Rouge,

Les données aux points d'intersections ont disparu avec réapparition du grisage à ces mêmes points d'intersection 👍, l'ajout fonctionne 👍, mais ce coup-ci, le retrait ne fonctionne plus 😢.
J'aurais bien voulu ne serais-ce que comprendre le code pour voir ou se situait l'erreur mais ... ma compréhension de ce langage m'en empêche ...

Pourrez-vous dès que possible y revenir dessus ?

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 544
Messages
2 089 452
Membres
104 167
dernier inscrit
nourisebai