IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Utiliser un nom de variable automatiquement [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut Utiliser un nom de variable automatiquement
    Bonjour,
    J'ai besoin d'utiliser un nom de variable automatiquement dans une sub, ex.:

    Je créé des variables :
    A = "toto"
    B = "tata"
    C = "titi"
    etc..

    Je suis positionné sur une cellule, dont je sais récupérer le nom de colonne (A,B,C,etc...) et le mettre dans une variable nommée MaPosition
    MaPosition = "C"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox([MaPosition) 'C'est la le HIC!
    Je voudrais en réalité utiliser le contenu de la variable "C" en l’occurrence "titi", et non "C".
    Encore un re-direction
    Avez vous une idée?
    Merci !

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox Activecell.value
    => (si c'est dans la lignée du lancement de macro avec variable)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut
    Désolé, mais cela ne va pas je dis travailler SANS utiliser les valeurs des cellules.
    Il s'agit d'une redirection de variable sans rapport avec des cellules.
    J'ai :
    Var1 = "toto"
    Var2 = "Var1"

    et je veux lorsque je lance (?) Var2 avoir le contenu de Var1 et non ce nom "Var1" comme le fait indirect() dans excel...
    Merc i

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Ok. J'avais mal compris ta question.

    Que cherches-tu à faire? J'ai l'impression que tu te compliques la vie.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut
    Pour faire simple:
    J'ai un tableau avec un certain nombre de colonne
    a chaque colonne correspond un format et des actions de mise en forme
    les colonnes peuvent être deplacées selon les besoins utilisateurs...
    J'ai donc créé des sub pour chaque type de format et mise en forme, nommées P.E. FTMajuscules, FTTéléphone, etc...
    J'au ensuite créé autant de variables que de colonnes dans lesquelles j'ai mis le nom des sub
    A= "FTMajuscules"
    B = "FTTéléphone"
    C = ....

    J'ai récupéré dans une variable nommé MaPosition le nom de la colonne selectionnée.
    MaPosition ="B"

    Je veux pouvoir lancer la routine FTTéléphone depuis MaPosition...
    Application.run MaPosition ??? C'est là le HIC !
    Et merci encore !

  6. #6
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    bonjour,
    dans ton exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    C = "titi"
    Maposition = C ' et non pas "C"
    msgbox Maposition
    Maposition = C sans les guillemets

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Moi, je résoudrais cela par un select case
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Select Case MaVariable
        Case "A"
            FTMajuscules
        Case "B"
            FTTéléphone
        Case ...
            ...
        End Select
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub FormatageDonnées()
    
    'Déclaration du type de format par colonne
    cA = "FT_Matricule"
    cB = "FT_Majuscule"
    cC = "FT_Majuscule"
    cD = "FT_Téléphone"
    cE = "FT_Mail"
    cF = "FT_Mail"
    cG = "FT_SitePrincipal"
    cH = "FT_Téléphone"
    cI = "FT_Téléphone"
    cJ = "FT_Téléphone"
    cK = "FT_Majuscule"
    
    Selection.End(xlUp).Select
     vFT = Selection.Address(RowAbsolute:=False, ColumnAbsolute:=False)
     vFTa = "c" & Left(vFT, Len(vFT) - 1)
     
     Application.Run vFTa
    l'exemple > vFTa = cH

    Voilà c'est la que je ne sais pas lancer la sub routine FT_Téléphone

    Merci !

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 205
    Par défaut
    Bonjour,
    Quelque chose comme ça peut-être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    MaPosition = "C"
    Select Case MaPosition
    Case "A": MaPosition = "toto"
    Case "B": MaPosition = "titi"
    Case "C": MaPosition = "tutu"
    End Select
    Run MaPosition
    End Sub
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/08/2014, 14h18
  2. utiliser un nom de variable pour un plot
    Par anthony78340 dans le forum MATLAB
    Réponses: 9
    Dernier message: 11/06/2014, 14h41
  3. utilisation des noms des variables dans les conditions
    Par ankhaline dans le forum SAS Base
    Réponses: 4
    Dernier message: 14/08/2010, 14h34
  4. Utiliser un nom de variable dynamique
    Par Zakapatul dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/08/2008, 16h00
  5. Réponses: 5
    Dernier message: 10/04/2008, 19h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo