Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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

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
 

redexcel

XLDnaute Junior
en fait la formule suivante marche bien :
nom_onglet = [VLOOKUP(201711,'Références'!A:B,2,0)]

mais quand je remplace "201711" par Range("A1") par exemple ça ne marche plus ?

genre nom_onglet = [VLOOKUP(Range("A1"),'Références'!A:B,2,0)]
 

Discussions similaires

Réponses
3
Affichages
264
Réponses
28
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…