Excel vba Une "string" à convertir variable

Résolu/Fermé
Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 - 31 oct. 2011 à 16:52
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 1 nov. 2011 à 14:21
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
A voir également:

5 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
31 oct. 2011 à 20:51
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
0
Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 14
1 nov. 2011 à 09:48
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
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
1 nov. 2011 à 10:38
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
0
Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 14
1 nov. 2011 à 11:03
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
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
1 nov. 2011 à 11:23
heuu, c'est un peu court pour avoir tous les éléments et la logique voulue...
eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
1 nov. 2011 à 14:21
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
0