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 :

Passer d'une formule Excel Enregistree avec macro record R1C1 en dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut Passer d'une formule Excel Enregistree avec macro record R1C1 en dynamique
    Ma formule est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "=SUMPRODUCT(MMULT(R[-31]C[-2]:R[-31]C[17],R[-26]C[-2]:R[-7]C[17]),R[-31]C[-2]:R[-31]C[17])"
        Range("D34").Select
    Sauf que la complication arrive

    Mon calcul matricielle ne prend pas forcement la meme matrice a chaque fois. C est une matrice carree N*N ou N est variable.

    Je dois imperativement metre ca sous forme de formule car je vais utiliser le solveur après

    La notation en rouge fonctionne mais je ne veux pas ce format ------
    ¦
    ¦
    ¦

    Cells(nr + 2, 2) = WorksheetFunction.SumProduct(WorksheetFunction.MMult(Range(Cells(2, 2), Cells(2, nc)), Range(Cells(7, 2), Cells(7 + nmtitres - 1, nc))), Range(Cells(2, 2), Cells(2, nc)))



    Merci pour votre aide

  2. #2
    Membre averti Avatar de Kiouane
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2016
    Messages : 198
    Points : 394
    Points
    394
    Par défaut
    A première vue, il te manque des .value après cells() et Range()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(nr + 2, 2).value = WorksheetFunction.SumProduct(WorksheetFunction.MMult(Range(Cells(2, 2), Cells(2, nc)).value, Range(Cells(7, 2), Cells(7 + nmtitres - 1, nc)).value), Range(Cells(2, 2), Cells(2, nc)).value)

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    La formule en rouge fonctionne mais je ne la veux pas dans ce format la ... Je pense aue tu devrais relire le message je sais que ce n'ai pas tres simple a comprendre... fais moi signe si tu as besoin de plus de details

    Je ne veux donc pas utiliser le format de formule en rouge

  4. #4
    Membre confirmé
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Points : 584
    Points
    584
    Par défaut
    Je pense que si tu nous expliquais plus clairement ta demande cela aiderait car selon moi la remarque de Kiouane est plus que pertinente

    Quel format veux tu ? Qu'es ce que N (j'entends par la d'ou vient il) ? A quel moment intervient il ? etc.
    C'est en creusant qu'on fait des trous

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    Pour faire plus simple je vais prendre une formule plus abordable :

    Je voudrais convertir ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT(R[-32]C[-2]:R[-32]C[17],R[-31]C[-2]:R[-31]C[17])"
    En quelque chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveCell.FormulaR1C1 = _
            "=SUMPRODUCT(&Cellls(2,2).address : &Cellls(2,dernierecolonnematrice).address ,(&Cellls(2,
    3).address : &Cellls(2,dernierecolonnematrice).address
    je pense que c'est possible mais ma sintaxe n est pas bonne. Soit c est une pb de "" soit de &. Est ce plus clair ?

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 764
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pourquoi écris-tu tes formules avec le style R1C1 ?
    A lire éventuellement les deux billets Ecrire une formule dans Excel à l'aide d'une procédure VBA et Ecrire une formule dans Excel à l'aide d'une procédure VBA (Part 2)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    Je suis oblige de l ecrire en R1C14 car je vais utiliser le solver après avec la solution ...

  8. #8
    Membre confirmé
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Points : 584
    Points
    584
    Par défaut
    Tout à fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveCell.FormulaR1C1 = _
    "=SUMPRODUCT(" & Cells(2, 2).address & ":" & Cells(2,dernierecolonnematrice).address & "," & Cells(2, 3).address & ":" & Cells(2,dernierecolonnematrice).address & ")"
    PS : j'ai pas vérifié si ca fonctionne
    C'est en creusant qu'on fait des trous

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Points : 81
    Points
    81
    Par défaut
    Merci si tu arrives aussi a me traduire celle la tu serais un ange hahaha

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     "=SUMPRODUCT(MMULT(R[-31]C[-2]:R[-31]C[17],R[-26]C[-2]:R[-7]C[17]),R[-31]C[-2]:R[-31]C[17])"
        Range("D34").Select
    Je l'ai fait tout seul cependant il y a un probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(nr + 6, 2) = "=SUMPRODUCT(" & Cells(2, 2).Address & ":" & Cells(2, nc).Address & "," & Cells(3, 2).Address & ":" & Cells(3, nc).Address & ")"
    Me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SUMPRODUCT($B$2:$P$2,$B$3:$P$3)
    J aimerai avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SUMPRODUCT(B2:P2,B3:P3)
    Ca serait parfait merci beaucoup

  10. #10
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    toujours consulter l'aide en ligne ... on oublie facilement que certaines propriétés disposent de paramètres à force de ne jamais en avoir besoin

    http://www.developpez.net/forums/d15...a/#post8654986

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

Discussions similaires

  1. [XL-2007] problème avec une formule Excel
    Par skipeemed dans le forum Excel
    Réponses: 1
    Dernier message: 09/09/2011, 12h36
  2. Macro pour activer une formule excel
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 19/03/2010, 09h42
  3. Activer une formule lien hypertexte avec une macro
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/03/2010, 09h58
  4. Réponses: 6
    Dernier message: 20/11/2008, 15h55
  5. [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

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