[VBA] Question sur ma gestion de liste de données

Bonjour,

J'ai créé sur des feuilles séparées, des bases de données ("PROJETS", "CLIENTS", "COMPAGNIES").

A chaque projet, lorsqu'une compagnie ou un client est associé et qu'il existe déjà dans les BDD associées, j'ai une colonne (nommée "Associations") dans "PROJETS" qui regroupe les clients et les compagnies (ex: COMPAGNIE1 [|] CLIENT1 (;) CLIENT2 [;] COMPAGNIE2 [|] COMAGNIE3)

J'utilise des séparateurs particuliers pour distinguer les compagnies associées à des clients, les clients isolés et les compagnies isolées.

Je me retrouve donc à avoir toutes mes infos sur une seule ligne, dans une seule colonne. Et en jouant avec les séparateurs, j'obtiens les résultats que je souhaite.

Cette méthode me permet de limiter le nombre de lignes, car je ne crée pas de nouvelle ligne pour chaque nouvelle entrée (comme ce serait le cas dans une vraie BDD).

Durant les recherches, je dois ainsi boucler sur la colonne "Associations", puis splitter le contenu à partir des 3 séparateurs "[|], [;], (;)".

Je me retrouve avec une boucle dans une boucle, dans une boucle dans une boucle.

L'avantage est que les boucles sont très courtes (3 ou 4 itérations). Et finalement, le nombre total d'itérations est le même, je pense.

Ma question : Pensez-vous qu'au niveau performances, l'utilisation d'une seule boucle sur de nombreuses lignes est plus rapide que l'utilisation de boucles successives, pour un nombre équivalent de calculs ? (Il y a quand même la nécessité de splitter à chaque fois).

Bonne journée !

bonjour,

Sans voir ton fichier ni les calculs dont tu parles, ni la façon dont tu exploites tes données après séparation, on pourrait penser qu'il ne devrait pas y avoir de différence entre une boucle ou plusieurs boucles qui, au final, donnent le même nombre de calculs.

cependant je pense qu'on peut diminuer le nombre de calcul en utilisant un seul séparateur, précédé d'une lettre ou un chiffre qui permettrait de distinguer le type d'association. Cela devrait diminuer (de 3 à 1) le nombre de parcours de ton texte à la recherche d'un séparateur

Bonjour,

En effet, sans document, ce n'est pas facile de visualiser.

J'avais besoin de tester les deux solutions pour comprendre ce que je peux obtenir et ce que j'attends vraiment.

Comme souvent, c'est en expliquant sur ce forum que j'ai pu y voir plus clair.

En utilisant des séparateurs, le code est beaucoup plus complexe, avec plusieurs scénarios à traiter. Alors qu'en répétant les lignes dans une base de données, la gestion se fait beaucoup plus facilement.

Ce serait long et pas très utile à expliquer, mais finalement l'utilisation d'une BDD, me permet de filtrer plus facilement et de rechercher des données avec moins d'opérations (chaque split est une opération qui n'est pas réalisée quand les données sont simplement listées et lues).

Bonne journée !

-re-Bonjour,

mais finalement l'utilisation d'une BDD,

solution évidente, que je n'avais pas proposée car tu semblais ne pas vouloir aller dans cette direction.

Bonne journée.

Rechercher des sujets similaires à "vba question gestion liste donnees"