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 :

Ecriture données et fréquences dans une formule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Octobre 2014
    Messages : 10
    Par défaut Ecriture données et fréquences dans une formule
    Bonjour,

    Grâce à un membre du forum j'ai réussi à créer, à partir d'une base de données, des feuilles avec pour colonne B des données et colonne A leur récurrence. (voir photo)


    Avec ces nouvelles feuilles , je souhaiterai créer des formules dans une feuille appelée "feuilleFormule" qui reprendront les valeurs fréquences et données et qui seront de ce type :


    sheets("feuilleFormule").Cells(2,2).FormulaR1C1 = "=Formule({Donnée1,Donnée2,Donnée3,.....,DonnéeX},{Freq1,Freq2,Freq3,.....FreqX})"

    (Données et fréquence de la feuille 1 par exemple)

    sheets("feuilleFormule").Cells(2,2).FormulaR1C1 = "=Formule({Donnée1,Donnée2,Donnée3,.....,DonnéeY},{Freq1,Freq2,Freq3,...FreqY})"

    (Données et fréquence de la feuille 2 par exemple)

    Donc ma question serait quelle macro pour intégrer toutes les données et fréquences dans ma formule tout en faisant référence à la bonne feuille.

    Merci pour votre aide
    Images attachées Images attachées  

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Octobre 2014
    Messages : 10
    Par défaut
    Personne pour m'aider??

    En faite pour simplifier, je veut réaliser une boucle for qui me remplira ma formule. Exemple :

    For i = 2 to 50

    formule = expression( {donnée(i), donnée(i+1), ...} , { freq(i), freq(i+1)), ...} )

    next

    Cependant ce code n'est pas correct car il écrase les données.

    Si on se fie à la pièce jointe, le code doit renvoyer :

    formule = expression({-16,4,30,23,20,50,10,15,18,33},{1,3,2,1,2,3,1,1,1,2})

    S'il vous plait aidez moi!
    Images attachées Images attachées  

  3. #3
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Bonjour,

    Je suis désolé, mais je n'ai pas compris ce que tu veux faire. Tu veux écrire une formule dans une cellule ? Quelle formule ?

    Sinon pour ta boucle For, ce n'est pas la peine de faire i+1, vu que la boucle s'incrémente d'elle même (C'est le principe d'une boucle)

    Il faut que tu fasse quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For I = 1 to 50
       Expression = Expression & "," & Worksheets("MaFeuille").cells(i, 1)
    Next I
    Mais ce ne sont que des petites pistes, étant donné que je n'ai pas saisi ce que tu veux faire !

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Octobre 2014
    Messages : 10
    Par défaut
    Bonjour,

    Effectivement, je veux écrire une formule dans une cellule.

    La formule est RiskDiscrète = ({donnée1,donnée2,..,donnée50} , {freq1,freq2,..,freq50}).

    RiskDiscrete est une formule d'un logiciel appelé @Risk complémentaire à excel.

    La cellule ou sera écrite la formule et la cellule (2,2) de ma feuille "feuilleFormule" et les données et fréquences sont à récupérer dans la feuille "feuilleEx".

    A la place d'une boucle, ce que je peux faire c'est récupérer la plage de la colonne.

    Connaissez vous une macro qui permet de récupérer la plage d'une colonne et qui le renvoie comme tel :

    {1,2,5,10,15}

    Merci

  5. #5
    Membre émérite Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Par défaut
    Et bien, oui, avec une boucle !

    Je pars du postulat que 1; 2; 5; 10; 15 sont les valeurs de la colonne A.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Dim MyRange as range
    Dim Cel as variant
    Dim Str_Renvoie as string
     
    With Worksheets("MaFeuille")
       Set Range = .Range(.Cells(1, 1), .Cells(1, 5))
    End with
     
    Str_Renvoie = "{"
    For each cel in MyRange
       Str_Renvoie = Str_Renvoie & cel.value & ","
       'Méfie toi du séparateur ","
    Next Cel
     
    Str_Renvoie = Left(Str_Renvoie, Len(Str_Renvoie) - 1)
    'Ici, je supprime le "," qu'il y aura en trop
     
    Str_Renvoie = Str_Renvoie & "}"
    'Je ferme l'accolade
    Après, tu peux moduler le Range.

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Octobre 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Octobre 2014
    Messages : 10
    Par défaut
    Bonjour Nico Chg,

    J'ai réaliser le code en suivant ta première idée et mon code se rapproche de ta 2ème réponse.

    Au final c'est parfait tout fonctionne!

    Merci encore a toi!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA]Passer une variable dans une formule Excel
    Par David1974 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2006, 16h52
  2. concaténation en vba dans une formule de cellule Excel
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 22h58
  3. Réponses: 8
    Dernier message: 13/04/2005, 15h40
  4. Réponses: 6
    Dernier message: 18/01/2005, 16h24
  5. problème de guillemets dans une formule shell
    Par dim_italia dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/08/2003, 12h46

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