IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Insertion Formule dans une Boucle VBA (bloomberg)


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Insertion Formule dans une Boucle VBA (bloomberg)
    Bonjour,
    En fait mon probleme est d ecrire la formule Bloomberg suivante dans des cellules successives: "BDP(A1corpisin,Fund_total_assets)"
    En fait la formule serait pour le Range"Ak" (où k est la variable qui parcourt les cellules):


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Sheets(1).Range("A" & k).Formula="BDP(A&k&corpisin,Fund_total_assets)"

    le pb c est que je veux le faire pour toutes les cellules de A1 à A&LastRow
    j ai tenté plusieurs ecritures mais rien à faire j obtiens toujours: Erreur '1004'
    voici un exemple de ce que j ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets(1).Range("T" & k ).Formula = _
                    "=BDP(A " & k &  ";" & "Fund_total_assets)"

    ne vous focalisez pas sur le BDP, c juste la syntaxe pour n importe qu elle focntion dont j ai besoin .
    Merci

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    En anglais, le séparateur d'argument dans les fonctions est la virgule et il ne faut pas d'espace entre le nom de la colonne et le numéro de la ligne (Ak et non A k) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets(1).Range("T" & k ).Formula = _
    "=BDP(A" & k & "," & "Fund_total_assets)"
    Tu peux utiliser la version francisée de la formule (avec le point virgule) avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets(1).Range("T" & k ).FormulaLocal = _
    "=MAFONCTION(A" & k & ";" & "Fund_total_assets)"

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup ! Je n y aurais jamais pensé !

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    Tu peux appliquer directement ta formule à ta plage (sans boucle)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Dim LastLig As Long
     
    With Sheets(1)
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range("T1:T" & LastLig).Formula = "=BDP(A1,Fund_total_assets)"
    End With
    End Sub

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci pour cette précision mais en fait la formula en question depend de Ak et non A1, il faut donc une boucle pour que ca prenne ce qui se trouve dans la cellule Ak à chaque fois.
    Mais je ne connaissais pas cette syntaxe ca pourra m aider ulterieurement!

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    As-tu au moins testé la proposition? T1 dépend de A1,... Tk dépend de Ak et sans boucle.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je ne comprends pas comment ca incrémente automatiquement !! Mais c tres bien.
    En fait ma formule est celle ci, comment adapter ton code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =BDP("LU0474440715 corp isin","Fund_total_assets")
    avec "LU0474440715" c est mon code ISIN ou bien Range("A" & k).Value

    Voici le code que j ai da,ns ma macro qui fonctionne mais si je peux l améliorer...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=BDP(" & Chr(34) & MaVar(k).ISIN & " corp isin" & Chr(34) & "," & Chr(34) & "Fund_total_assets" & Chr(34) & ")"

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bon, on va faire un petit essai
    Dans un nouveau classeur, mettre des chiffres de A1 à A10
    Lance cette macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test1()
     
    Range("B1:B10").Formula = "=2*A1"
    End Sub
    On récupère bien en B1 =2*A1, en B2 =2*A2... en B10 =2*A10

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    Dim LastLig As Long
     
    With Sheets(1)
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range("T1:T" & LastLig).Formula = "=BDP(A1 &"" corp isin"",""Fund_total_assets"")"
    End With
    End Sub

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Franchement je suis ébahi par la puissance du code!chapeau bas !!
    Il ne reste plus qu un point ,non lié à la syntaxe,et sur lequel j aimerais des détails. Mes formules sont bien appliquées partout mais seulement je suis obligé de clicker dessus les cellules et puis valider par entree pour qu il calclule! Est ce normal ? Y a t il une raison ?

  10. #10
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Si tu fais F9?

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par mercatog Voir le message
    Si tu fais F9?
    Ca ne change rien mais j ai des doutes quand à Excel sur ce poste qui refuse d executer ma macro et plante alors que ca marche tres bien sur le mien.
    Je suis obligé de l' appliquer manuellement... étrange.

    Je me me permet puisque vous m avez bien aidé, auriez vous un tuto ou un livre que vous recommenderiez pour maitriser VBA pour EXCEL ? Moi je me débrouille mais je veux progresser encore.

  12. #12
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par Stufa789 Voir le message
    auriez vous un tuto ou un livre que vous recommenderiez pour maitriser VBA pour EXCEL ? Moi je me débrouille mais je veux progresser encore.
    ftp://ftp2.developpez.be/developps/vb/VB-excel2.pdf

Discussions similaires

  1. [PHP 5.2] 34000 insert into dans une boucle, bloquage à 32768 !
    Par Dsphinx dans le forum Langage
    Réponses: 29
    Dernier message: 11/06/2013, 15h57
  2. [MySQL] INSERT INTO dans une boucle
    Par andaman dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/05/2013, 16h39
  3. Réponses: 6
    Dernier message: 26/01/2011, 10h38
  4. [XL-2003] faire une boucle dans une boucle VBA
    Par the-geut dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2010, 15h06
  5. probleme insertion formule dans cellule via vba
    Par moxo01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/06/2008, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo