Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2011, 13h38   #1
Invité régulier
 
Inscription : mars 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 8
Points : 5
Points : 5
Envoyer un message via MSN à K-limero
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 :
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 !
K-limero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 13h40   #2
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Salut.

Code :
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)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 13h45   #3
Invité régulier
 
Inscription : mars 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 8
Points : 5
Points : 5
Envoyer un message via MSN à K-limero
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
K-limero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 13h50   #4
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
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)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 13h56   #5
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 32
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 32
Points : 39
Points : 39
Bonjour,
Quelque chose comme ça peut-être :
Code :
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+
galopin01 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/08/2011, 14h00   #6
Invité régulier
 
Inscription : mars 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 8
Points : 5
Points : 5
Envoyer un message via MSN à K-limero
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 !
K-limero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h00   #7
Membre Expert
 
Avatar de rvtoulon
 
Homme Hervé
Agent Technique
Inscription : mars 2009
Messages : 823
Détails du profil
Informations personnelles :
Nom : Homme Hervé
Âge : 36
Localisation : France, Var (Provence Alpes Côte d'Azur)

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

Informations forums :
Inscription : mars 2009
Messages : 823
Points : 1 441
Points : 1 441
bonjour,
dans ton exemple:
Code :
1
2
3
C = "titi"
Maposition = C ' et non pas "C"
msgbox Maposition
Maposition = C sans les guillemets
__________________
@+

Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
Ou sur si ce n'est pas le cas
rvtoulon est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 31/08/2011, 14h11   #8
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
Moi, je résoudrais cela par un select case
Code :
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)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h15   #9
Invité régulier
 
Inscription : mars 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 8
Points : 5
Points : 5
Envoyer un message via MSN à K-limero
Code :
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 !
K-limero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h26   #10
Responsable
Office & Excel

 
Avatar de Pierre Fauconnier
 
Homme Pierre Fauconnier
Formateur et développeur informatique indépendant
Inscription : novembre 2003
Messages : 8 198
Détails du profil
Informations personnelles :
Nom : Homme Pierre Fauconnier
Âge : 45
Localisation : Belgique

Informations professionnelles :
Activité : Formateur et développeur informatique indépendant
Secteur : Enseignement

Informations forums :
Inscription : novembre 2003
Messages : 8 198
Points : 14 398
Points : 14 398
Envoyer un message via Skype™ à Pierre Fauconnier
En voyant ton code, je te propose une autre solution

Place les noms de tes procédures sur la ligne 1, dans les bonnes colonnes, d'une feuille cachée.

Tu pourras alors utiliser le nom facilement
Code :
Run Worksheets("Macros").Cells(1, ActiveCell.Column).Value
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------

Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP
Vous souhaitez rédiger pour DVP? Contactez-moi
Amoureux de la langue française? Venez corriger nos ressources
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
N'oubliez pas de VOTER (en bas à droite d'un message)

---------------
Pierre Fauconnier est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 31/08/2011, 14h33   #11
Invité régulier
 
Inscription : mars 2009
Messages : 8
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 8
Points : 5
Points : 5
Envoyer un message via MSN à K-limero
Voilà une idée qu'elle est trés bonne
Merci je vais le faire.
Mais bon j'avais déjà il y a quelques temps eu besoin de ce type de redirection et j'aimerais peut être savoir si cela est possible comme sous Excel...
Je ferme la question, mais si un jour tu as une idée n'hésites pas à me la faire parvenir..
K-limero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 14h45   #12
Membre Expert
 
Avatar de rvtoulon
 
Homme Hervé
Agent Technique
Inscription : mars 2009
Messages : 823
Détails du profil
Informations personnelles :
Nom : Homme Hervé
Âge : 36
Localisation : France, Var (Provence Alpes Côte d'Azur)

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

Informations forums :
Inscription : mars 2009
Messages : 823
Points : 1 441
Points : 1 441
La solution du Select case donnée plus haut fonctionne bien. En l'adaptant cela donnerai ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub test ()
Selection.End(xlUp).Select
vFT = Selection.Address(rowabsolute:=False, columnabsolute:=False)
vFTa = "c" & Left(pos1, Len(pos1) - 1)
 
Select Case vFTa
   Case "cA"
      Run "FT_Matricule"
   Case "cB"
      Run "FT_Majuscule"
'etc....
End Select
End Sub
__________________
@+

Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
Ou sur si ce n'est pas le cas
rvtoulon est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h40.


 
 
 
 
Partenaires

Hébergement Web