Pb Déclaration Variable dans boucle For [Résolu]

Signaler
Messages postés
2
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
18 mars 2008
-
elisenda21
Messages postés
2
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
18 mars 2008
-
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

Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
30
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
Messages postés
2
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
18 mars 2008

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!