Bonjour chers experts,
Je viens d'arriver à un point où mes compétences en VBA arrivent à leurs limites. Je vous explique mon problème. Je suis consultant sur le progiciel SAP et je fais des extracts de tables que je dois ensuite analyser via Access. Le problème avec une des tables (la AGR_1251 pour ceux qui connaissent) est qu'elle présente des intervalles de transactions qu'il me faut déplier avant de les uploader dans Access. Je déplie ces intervalles via Excel et le VBA.
Par exemple, ca nous dit que l'intervalle va de SE09 à SE16, du coup, ayant la liste de toutes les transactions, je pars de SE09 jusqu'à SE16 et je fais une ligne par transaction. Le but étant de ne plus avoir d'intervalles pour ensuite analyser qui a accès à quelle transaction.
Jusque là, j'y arrive bien. Le problème, cependant, c'est que la plupart du temps, les intervalles mis par les admins sont exclusifs, par exemple si on ne veut pas donner la SE16 à un utilisateur, on fait deux intervalles du genre 0-SE15 et SE17-Z. Encore une fois, pas de souci pour ca.
Le problème vient quand, si on reprend l'exemple en dessus, SE15 ou/et SE17 n'existe(nt) pas dans la liste des transactions. A ce moment là, mon code actuel ne peut pas trouver les bornes de l'intervalle et du coup ca ne fonctionne pas. Vous allez me dire : "fais un compteur alphanumérique !". Oui, dans le cas ci-dessus, ca fonctionne mais j'ai des cas comme suit :
2 Intervalles : 0-ETIFRE et ETIFRG-Z
Liste au niveau de l'exclusion :
...
ET01
ET02
ETIFRFTLOEDKGF
ETJOI
ETZZ
...
Ici, on voit bien qu'on veut exclure la valeur ETIFRFTLOEDKGF, mais par flemme de faire correctement, les admins se sont arrêtés avant, de sorte que la longueur de la transaction est supérieure à celle des bornes de l'intervalle, du coup, mon compteur alphanumérique ne fonctionne pas. Ici, les bons intervalles sont 0-ET02 et ETJOI-Z
Je suis obligé, pour le moment, de remplacer à la main toutes les bornes d'intervalle qui n'existent pas par des qui existent et de lancer mon code qui les déplie après.
Du coup ma question est : comment feriez-vous pour trouver les bonnes bornes pour les intervalles sans se les taper à la main ?
Ici, il faudra trouver la valeur qui précède alphanumériquement ETIFRE, c'est à dire ET02, et la valeur qui suit ETIFRG, soit ETJOI. Ou bien alors trouver la valeur qui doit être exclue, soit ETIFRFTLOEDKGF, et prendre, selon le cas, la valeur d'avant ou celle d’après. Donc selon moi, deux approches possibles.
Qu'en pensez-vous ? Ai-je été clair ? =)
Merci,
Kodie
Partager