VBA Ecrire formule dans une cellule via VBA

Fermé
nicox100 Messages postés 22 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 28 août 2009 - 2 févr. 2009 à 14:43
 Utilisateur anonyme - 3 févr. 2009 à 15:21
Bonjour tout le monde,
Je début comme certains en VBA et j'ai un soucis quand à l'inscription programmée d'une formule avec paramètres variables dans une celllule.
La formule est inscrite dans une boucle et est censée inscrire une formule d'importation de donnée d'un terminal bloomberg avec la formule BDH. (ne pas s'arreter à cette formule, ca n'importe pas dans la question).


Voici à quoi ressemble la formule dans une des cellules excel:

=IF(K8="","",BDH(K8,L11,$E$2," ","FX=USD","Days=Trading","Fill=P","Dates=Show","DateFormat=D","Dir=V","Period=D","Quote=C","Sort=A","cols=2;rows=4873"))

Les seuls termes qui évoluent et changent sont K8, L11 et E2. Le reste des élements sont à considérer comme fixe.

J'ai bien tenté de la programmer mais rien n'y fait. Je n'arrive pas à différencier les guillemets de ma programmation vba proprement dite des guillemets qui sont à intégrer dans ma formule directement.

Voilà où j'en suis.

Security = .Range("E8").Offset(0, 3 * Numberofsecurities)
Data = .Range("F11").Offset(0, 3 * Numberofsecurities)
FirstDate = .Range("E3")
.Range("E12").Offset(0, 3 * Numberofsecurities).Value = "=IF(" & Security & "," & Data & "," & Firsdate etc etc...


Quelqu'un pourrait-il m'aider svp ?

4 réponses

Utilisateur anonyme
2 févr. 2009 à 19:22
Bonjour,

Suggestion, construisé votre formule par étape :

Sub ConstruitFormule()

    Dim Formule As String
    Dim varAdr1 As String
    Dim varAdr2 As String
    Dim varAdr3 As String
    
    
    '=IF(K8="","",BDH(K8,L11,$E$2,"","FX=USD","Days=Trading","Fill=P","Dates=Show",
    '     "DateFormat=D","Dir=V","Period=D","Quote=C","Sort=A","cols=2;rows=4873"))
    'K8   -> varAdr1
    'L11  -> varAdr2
    '$E$2 -> varAdr3
    varAdr1 = "K8"
    varAdr2 = "L11"
    varAdr3 = "$E$2"


    Formule = "=IF("
    Formule = Formule & varAdr1 & "=" & """" & """"
    Formule = Formule & "," & """" & """"
    Formule = Formule & ",BDH("
    Formule = Formule & varAdr1 & "," & varAdr2 & "," & varAdr3
    Formule = Formule & "," & """" & """"
    Formule = Formule & "," & """" & "FX=USD" & """" & ","
    Formule = Formule & """" & "Days=Trading" & """" & ","
    Formule = Formule & """" & "Fill=P" & """" & ","
    Formule = Formule & """" & "Dates=Show" & """" & ","
    Formule = Formule & """" & "DateFormat=D" & """" & ","
    Formule = Formule & """" & "Dir=V" & """" & ","
    Formule = Formule & """" & "Period=D" & """" & ","
    Formule = Formule & """" & "Quote=C" & """" & ","
    Formule = Formule & """" & "Sort=A" & """" & ","
    Formule = Formule & """" & "cols=2;rows=4873" & """" & "))"
    
    Range("A1").Offset(0, 0).Value = Formule
    
    
End Sub
'

Lupin
1
nicox100 Messages postés 22 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 28 août 2009 1
2 févr. 2009 à 16:00
Pour simplifier ma question:
Comment transcrire la formule suivante en VBA:
=IF(A1="","",A1*A2)
Merci
0
nicox100 Messages postés 22 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 28 août 2009 1
3 févr. 2009 à 14:51
Salut Lupin,
Merci de ton aide.
J'ai trouvé à l'instant la solution à mon problème.
Pour voir la réponse, je te suggère de regarder ce post :
http://www.commentcamarche.net/forum/affich 6602926 vba probleme de guillemets
Vive Commentcamarche.com !!
Bonne journée à toi
Nicox100
0
Utilisateur anonyme
3 févr. 2009 à 15:21
re:

J'ai déjà vu cette technique mais je suis habitué avec la mienne :-)

Tous les chemins menent à Paris :-)

Lupin
0