XL 2013 definir une variable string avec une formule

redexcel

XLDnaute Junior
Bonjour a tous

Je voudrais déclarer une variable as string que je récupère avec une formule recherchev, mais je suis obliger de recuperer le resultat de la formule dans une cellule (Range("E1")), voila mon code:


Dim nom_onglet As String
Sheets("Références").Range("E1") = "=VLOOKUP(201711,'Références'!C[-4]:C[-3],2,0)"
nom_onglet = Range("E1")
MsgBox (nom_onglet)


J'ai essayer de faire directement:

nom_onglet = "=VLOOKUP(201711,'Références'!C[-4]:C[-3],2,0)"

mais le resultat en msgbox me donne "=VLOOKUP(201711,'Références'!C[-4]:C[-3],2,0)" et non le resultat de la formule.

merci pour votre aide.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

Et comme ceci?
Sheets("Références").Range("E1") = "=VLOOKUP(201711,'" & Range("E1").Text & "'!C[-4]:C[-3],2,0)"

EDITION: Test concluant sur mon PC
VB:
Sub Test()
ActiveCell = "=VLOOKUP(RC[-1]," & [E1] & "!R[-1]C[-1]:R[1]C,2,0)"
End Sub

NB: Ici c'est ma propre formule de test
Mais le nom de l'onglet est en E1 et la formule inscrite par la macro est correcte et fonctionne.
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Bonjour a tous

Je voudrais déclarer une variable as string que je récupère avec une formule recherchev, mais je suis obliger de recuperer le resultat de la formule dans une cellule (Range("E1")), voila mon code:


Dim nom_onglet As String
Sheets("Références").Range("E1") = "=VLOOKUP(201711,'Références'!C[-4]:C[-3],2,0)"
nom_onglet = Range("E1")
MsgBox (nom_onglet)


J'ai essayer de faire directement:

nom_onglet = "=VLOOKUP(201711,'Références'!C[-4]:C[-3],2,0)"

mais le resultat en msgbox me donne "=VLOOKUP(201711,'Références'!C[-4]:C[-3],2,0)" et non le resultat de la formule.

merci pour votre aide.

Bonjour
Si j'ai bien compris
Essaye ceci
Code:
nom_onglet = [VLOOKUP(201711,'Références'!A:B,2,0)]
MsgBox nom_onglet
 

redexcel

XLDnaute Junior
Merci a tous mais je pense que je me suis mal exprimé:

En fait ma premiere macro marche bien:

Dim nom_onglet As String
Sheets("Références").Range("E1") = "=VLOOKUP(201711,'Références'!C[-4]:C[-3],2,0)"
nom_onglet = Range("E1")
MsgBox (nom_onglet)


Mais ce que je voudrais eviter, c'est de recuperer d'abord le resultat de la formule dans E1.

Je voudrais en fait pourvoir declarer directement la variable sans passer par E1, avoir genre:

Dim nom_onglet As String
nom_onglet = "=VLOOKUP(201711,'Références'!C[-4]:C[-3],2,0)"
MsgBox (nom_onglet)


Je ne sais pas si je suis clair
 

Jacky67

XLDnaute Barbatruc
Merci a tous mais je pense que je me suis mal exprimé:

En fait ma premiere macro marche bien:

Dim nom_onglet As String
Sheets("Références").Range("E1") = "=VLOOKUP(201711,'Références'!C[-4]:C[-3],2,0)"
nom_onglet = Range("E1")
MsgBox (nom_onglet)


Mais ce que je voudrais eviter, c'est de recuperer d'abord le resultat de la formule dans E1.

Je voudrais en fait pourvoir declarer directement la variable sans passer par E1, avoir genre:

Dim nom_onglet As String
nom_onglet = "=VLOOKUP(201711,'Références'!C[-4]:C[-3],2,0)"
MsgBox (nom_onglet)


Je ne sais pas si je suis clair

Re..
Et ma proposition ne fait pas ?????
Code:
nom_onglet = [VLOOKUP(201711,'Références'!A:B,2,0)]
MsgBox nom_onglet
 

redexcel

XLDnaute Junior
NOn ne fonctionne pas chez moi

upload_2018-1-20_18-10-33.png
 

Jacky67

XLDnaute Barbatruc
j'ai une qurstion du coup messieur
mettre la formule entre crochet [ ] et mettre la formule entre guillemet , quelle est la diff ?
entre guillment permet d'utiliser les references R[]C[] ?
Re..
C'est la version courte de "Evaluate"
Ceci donne le même résultat
Code:
nom_onglet = Evaluate("VLOOKUP(201711,'Références'!A:B,2,0)")
Un petit coup de F1 sur "Evaluate" donne plus d'informations
 

Discussions similaires

Réponses
3
Affichages
243
Réponses
28
Affichages
977

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16