Autocreation de variables vba [Résolu]

Signaler
Messages postés
2
Date d'inscription
mercredi 23 juillet 2014
Statut
Membre
Dernière intervention
23 juillet 2014
-
Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
-
Bonjour

J'ai fait le tour des forums mais je n'ai pas trouvé l'info que je cherchais
je me demande même si il est possible de faire ainsi...bref je m'expliques...

J'ai un fichier excel rempli de data, je dois recenser des statistiques pour ce fichier.Malheureusement le fichier n'est pas uniforme alors je me demande s'il est possible de faire travailler VBA afin qu'il me créé des variables supplémentaires pour qu'il classe le fichier...

Plus clairement ma colonne de local contient une série de caractère, je n'ai besoin que des 3 premiers caractères de celle-ci. Si les caractères diffèrent de ceux recherchés alors VBA devrait créé une variable afin de recenser le nombre d'occurrence de ce type de caractères avec leur statut respectif (construction) et(professionnels) qu'il aura enregistré.

Autrement si les caractères correspondent aux résultats attendus, il classe tout simplement la tache selon son statut et emplacement


bref j'aimerais répété cette procédure(création de variables par VBA lui-même plutot que de toutes les nommer) pour toutes mes colonnes puisque les personnes qui m'envoient les fichiers n'ont pas tous la même façon de le remplir et alors il devient hyperdifficile de traiter l'information.

Voici un petit exemple pour être plus clair :
Une ligne de mon excel
La colonne local de mon fichier contient B018100
La colonne statut construction : corrigé et la colonne statut professionnel est vide
J'ai besoin de classer alors cette activité comme tel
: dans le bloc B (première lettre de mon local)
:au niveau 01 ( les deux et troisième lettre de mon local)
:avec un statut corrigé (construction) et vide (profesionnel)
Comme je l'ai dit plus haut , le fichier n'est pas uniforme j'ai donc des noms de local qui ne correspondent pas à cette nomenclature . j'ai tout de même besoin de les classer c'est pourquoi je tenais à savoir si VBA peut créér ses propres variables et les analyser ensuite pour en ressortir les statistiques

Merci pour les conseils !
Bonne journée =)

3 réponses

Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Ce que tu décris ressemble pas mal à un dictionnaire de données (Clé->Valeur).
Peut regardes avec l'objet Collection il permet de faire des choses dans ce genre.
Au pire, un tableau dynamique avec un type définit par l''utilisateur (Instruction Type).
Messages postés
2
Date d'inscription
mercredi 23 juillet 2014
Statut
Membre
Dernière intervention
23 juillet 2014

merci pour ta réponse rapide!!!

je regarde ceci à l'instant

Bonne journée
Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
351
Bonjour,

Ta question aurait besoin de quelques éclaircissements...

Si les caractères diffèrent de ceux recherchés

Recherchés par qui ... comment ??
Tu veux dire que tu disposes (comme le suggère NHenry) d'un "dictionnaire" contenant toutes les "strcutures" de chaines à cherchée ?
Ou bien tu veux parler de la "FORME" de chaines ? ( par exemple : ta "string" commence par UNE lettre puis DEUX chiffres ) ?

=> Si c'est de la "forme" qu'il est question... il te faudra plutot t'orienter vers les expressions régulières ( REGEXP ).
--> Pour vérifier si ta chaine commence par une lettre puis deux chiffres.. le pattern à utiliser est : ^([a-zA-Z]\d{2})

--> Pour l'utilisation des Regex en VBA ; voir ici : http://cafeine.developpez.com/access/tutoriel/regexp/

--> Et donc... tu boucles sur ton tableau... Tu vériies via les regex si la "forme" de ta chaine ( cellule de ta colonne LOCAL) correspond à la forme attendue... et si OUI... tu effectues le traitement désiré...



merci pour ta réponse...je n'aurais jamais trouvé aussi facilement!!!
Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
351
Bonjour,
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane