Excel vba Une "string" à convertir variable
Résolu
Iama
Messages postés
324
Statut
Membre
-
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je bloque si vous pouviez me dépanner, j'en serai heureux Merci d'avance
Je récupère un nom (Fpanne) dans une feuille de calcul avec une macro par l'intermédiaire d'un tableau synoCycles().
synoCycles(1, i)= Fpanne
Je modifie ce nom "col" & synoCycles(1, i) pour en obtenir le nom d'une variable de ma macro.
J'obtiens "colFpanne" une chaîne, comment la convertir en variable : colFpanne ? SVP
Iama
Je bloque si vous pouviez me dépanner, j'en serai heureux Merci d'avance
Je récupère un nom (Fpanne) dans une feuille de calcul avec une macro par l'intermédiaire d'un tableau synoCycles().
synoCycles(1, i)= Fpanne
Je modifie ce nom "col" & synoCycles(1, i) pour en obtenir le nom d'une variable de ma macro.
J'obtiens "colFpanne" une chaîne, comment la convertir en variable : colFpanne ? SVP
Iama
5 réponses
-
Tu devrais commencer ton module par :
Option Explicit
Cela oblige à déclarer chaque variable mais cela évite les erreurs de débutant.
Tu verrais que Fpanne n'est un nom dans une feuille de calcul mais une variable VBA non déclarée !
Pour lire une cellule nommée :
synoCycles(1, i)= Range("Fpanne").Value -
Bonjour
J'ai du mal m'expliquer dans ma feuille de calcul Fpanne ne représente pas une valeur.
Je voudrais récupérer cette expression comme racine de variables vab (colFpanne, ligFpanne, valFpanne ...).
PS : Etant débutant autodidacte (tout les défauts) j'utilise depuis le début Option Explicit, c'est sage plus et je ne compte pas m'en passer.
Merci de t'intéresser à ma question
Cordialement
Iama -
Bonjour,
Tu ne peux pas avoir comme nom de variable une autre variable.
Je suppose que c'est pour la lisibilité du code, peut-être y-t-il une autre solution...
Tu peux toujours déposer un exemple sur cijoint.fr et coller ici le lien fourni.
eric -
Bonjour eric
C'est effectivement pour une simplification et surtout pourvoir utiliser un sous-programme.
Car j'ai d'autre "racines" comme Dcycle, Fcycle, Dpanne, Fpanne, Ddebu ....
Actuellement j'ai contourné le problème en utlisant
If synoCycles(1, i) = "Fcyle" Then destiN = colFcycle: Exit For
If synoCycles(1, i) = "Dcyle" Then destiN = colDcycle: Exit For
.....
Mais adieu la boucle qui engloberai l'ensemble..
Si vous avez une idée je suis toujours preneur pour limiter le nombre de lignes.
Cordialement
Iama -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Effectivement, j'avais pas compris, mais je ne suis pas le seul.
Peut-être voudrais-tu déclarer une variable personnelle : utilises Type
Comme dis Éric met ton fichier sur http://cijoint.fr/ ou https://www.cjoint.com/ (attention aux propriétés). :-)
et met le lien dans ton prochain post