Autocreation de variables vba

Résolu
divinski
Messages postés
2
Date d'inscription
mercredi 23 juillet 2014
Statut
Membre
Dernière intervention
23 juillet 2014
- 23 juil. 2014 à 17:40
jordane45
Messages postés
35761
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
- 30 juil. 2014 à 19:34
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

NHenry
Messages postés
14941
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 juin 2022
161
23 juil. 2014 à 18:18
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).
0
divinski
Messages postés
2
Date d'inscription
mercredi 23 juillet 2014
Statut
Membre
Dernière intervention
23 juillet 2014

23 juil. 2014 à 18:43
merci pour ta réponse rapide!!!

je regarde ceci à l'instant

Bonne journée
0
jordane45
Messages postés
35761
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
358
23 juil. 2014 à 19:04
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é...



0
merci pour ta réponse...je n'aurais jamais trouvé aussi facilement!!!
0
jordane45
Messages postés
35761
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
358
30 juil. 2014 à 19:34
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
0