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   -
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

5 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  2. Iama Messages postés 324 Statut Membre 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
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  4. Iama Messages postés 324 Statut Membre 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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      heuu, c'est un peu court pour avoir tous les éléments et la logique voulue...
      eric
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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