Excel vba Une "string" à convertir variable

Résolu
Iama Messages postés 319 Date d'inscription   Statut Membre Dernière intervention   -  
Patrice33740 Messages postés 8561 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
A voir également:

5 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 779
 
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   Statut Membre Dernière intervention   14
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 266
 
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   Statut Membre Dernière intervention   14
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 266
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 779
 
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