Rechercher : dans
Par :

VBA Ecrire formule dans une cellule via VBA

Dernière réponse le 3 fév 2009 à 15:21:11 nicox100, le 2 fév 2009 à 14:43:56 
 Signaler ce message aux modérateurs

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 ?

Configuration: Windows 2000
Internet Explorer 6.0

Meilleures réponses pour « VBA Ecrire formule dans une cellule via VBA » dans :
[Excel] Chemin et nom de stockage de feuille de calcul VoirIndiquer automatiquement le chemin d'accès (path) et le nom de stockage de toute feuille de calcul Noter dans une cellule (A& par exemple) la formule : =cellule("nomfichier";A1) A chaque sauvegarde et/ou déplacement de fichier dans votre...
[VBA] Détection de modification de cellule VoirExemple pour une MFC avec plus de 3 conditions. Private Sub Worksheet_Change(ByVal Target As Range) Dim Cel As Range For Each Cel In Target 'Adapter la/les plages. If Not Intersect(Cel, Range("B1:B30,D1:D30")) Is Nothing...
[VBA] Ecrire/lire une série de TextBox en une seule Sub VoirEn VBA, les TextBox ne disposent pas d'un index et dans la plupart des cas, pour entrer du texte, on procède par.. TextBox1.Text = Cells(2,1).value TextBox2.Text = Cells(2,2).value TextBox3.Text = Cells(2,3).value Et l'inverse pour lire les...
Copier une formule VoirAprès avoir laborieusement composé une formule dans une cellule, il est fréquent de vouloir la recopier d’autres cellules. Vous pouvez procéder de plusieurs façons. COPIER-COLLER La méthode la plus primaire consiste à sélectionner la cellule...
Tableur - La sélection des cellules VoirSélection de cellules Le tableur est un formidable outil pour manipuler des données. Ainsi, pour pouvoir manipuler les données il est nécessaire de disposer d'outils permettant de sélectionner rapidement toutes les cellules dont on a...

1

nicox100, le 2 fév 2009 à 16:00:35

Pour simplifier ma question:
Comment transcrire la formule suivante en VBA:
=IF(A1="","",A1*A2)
Merci

Répondre à nicox100

2

Lupin.A, le 2 fév 2009 à 19:22:43

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

Répondre à Lupin.A

3

nicox100, le 3 fév 2009 à 14:51:36

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

Répondre à nicox100

4

 Lupin.A, le 3 fév 2009 à 15:21:11

Re:

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

Tous les chemins menent à Paris :-)

Lupin

Répondre à Lupin.A
Collection CommentÇaMarche.net