Pb Déclaration Variable dans boucle For

Résolu
elisenda21 Messages postés 2 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 18 mars 2008 - 18 mars 2008 à 09:48
elisenda21 Messages postés 2 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 18 mars 2008 - 18 mars 2008 à 11:11
Bonjour,
voilà mon pb. J'ai défini un type de variable de la manière suivante :
Type Nouv_Type
    Données1 As String
    Données2 As Byte
    Données3 As Byte
    Données4 As String
End Type

Puis dans une boucle For, ma macro va chercher les valeurs de mes différents champs (dans des cellules Excel, enregistrées dans des variables temporaires) pour définir ma variable Nouv_type:

For compteur= 1 To X
    Dim Nom_var As Nouv_Type
        With Nom_var
            .Données1 = var_tp_1
            .Données2 = var_tp_2
            .Données3 = var_tp_3
            .Données4 = var_tp_4
        End With
Next

Ce que je veux faire : je voudrais que le nom de la variable "Nom_var" créée fasse apparaitre la valeur du compteur (pour ne pas être écrasée à chaque boucle j'ai besoin de stocker ces infos) : je ne sais pas comment le coder puisqu'il n'est pas possible de concatener une chaine de caractères et un "byte"... et que VB n'accepte que des constantes (et pas des variables comme mon compteur)
Autre solution : j'ai essayé d'enregistrer les variables créées dans une matrice mais VB m'affiche une erreur d'incompatibilité de format...

quelqu'un a t il une idée pour m'aider s'il vous plait ? J'ai déjà cherché tout l'après midi hier et je n'ai rien trouvé...
(le but étant de stocker les infos enregistrées dans les différents champs de ma variable pour pouvoir y faire appel de manière simple plus tard dans mon code)

Merci beaucoup!!

2 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
18 mars 2008 à 10:16
salut,

euh... mais pourquoi boucler avec var_tp_1.2.3.4 qui semblent fixes?

et quel problème as-tu rencontré avec une matrice?

déclare un tableau sous le type
dim atDonnees() as Nouv_Type

ensuite au dessus du for tu le dimentionnes
redim atDonnees(1 to X)

et tu récupères ensuite en boucle

For compteur= 1 To X
        With atDonnees(compteur)
            .Données1 = var_tp_1
            .Données2 = var_tp_2
            .Données3 = var_tp_3
            .Données4 = var_tp_4
        End With
Next compteur

si tu as une erreur là, c'est que c'est tes var_tp_1.2.3.4 qui ne sont pas correctement typées
(d'ailleurs çà devrait plus être var_tp as Nouv_Type aussi)

ps : macro? excel? VB6 ? c'est pas VBA plutôt?....

+
<hr size ="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
3
elisenda21 Messages postés 2 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 18 mars 2008
18 mars 2008 à 11:11
Merci beaucoup, ça fonctionne en déclarant le tableau (c'est ce que je n'avais pas fait...!)

Les réponses aux questions posées :
c'était bien du VBA Excel dans une macro
les variables var_tp_1.2.3.4 changent de valeur pour chaque i (la macro les remplit avec les valeurs de certaines cellules d'un tableau excel) -> ce ne sont pas donc pas des constantes...

Merci encore c'est génial ça fonctionne !
Bonne fin de journée!
0
Rejoignez-nous