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 :

Matrix en vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Stagiaire en génie des procédés
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Stagiaire en génie des procédés
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut Matrix en vba
    Re-bonjour à tous,
    J'essaie de faire le produit de deux matrices (enresgistrées comme deux variants de 20 lignes et 20 colonnes chaque).
    En écrivant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vbismat = Application.WorksheetFunction.MMult(vbimat, vsmat)
    mais je n'y arrive pas même si ma matrix vbismat est aussi un variant 20,20. En fait, ça me donne une
    erreur 1004: unable to get the MMult property of the WorksheetFunction class!
    Quelqu'un a une solution?

    Merci!

  2. #2
    Expert éminent 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
    Par défaut
    J'ai testé ce code avec succès
    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
    20
    21
    Sub Test()
    Dim Vbimat(1 To 20, 1 To 20) As Double
    Dim Vsmat(1 To 20, 1 To 20) As Double
    Dim Vbismat
    Dim i As Byte, j As Byte
     
    For i = 1 To 20
        For j = 1 To 20
            Vbimat(i, j) = Rnd()
            Vsmat(i, j) = Rnd()
        Next j
    Next i
     
    Vbismat = Application.WorksheetFunction.MMult(Vbimat, Vsmat)
     
    With Worksheets("Feuil1")
        .Range("A1").Resize(20, 20) = Vbimat
        .Range("A22").Resize(20, 20) = Vsmat
        .Range("A44").Resize(20, 20) = Vbismat
    End With
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Stagiaire en génie des procédés
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Stagiaire en génie des procédés
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut
    bonjour mercatog,

    Ton code semble être exactement ce dont j'ai besoin, par contre, et je m'excuse de ne pas avoir été plus explicite, mes deux matrices de départ sont de format variable, donc j'aimerais pouvoir écrire quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim vbimat(1 To a, 1 To a) As Double
    De plus, les matrices qui seront multiplier sont le résultat de calcul sur d'autre Variants. Voici un example:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    For j = 1 To a
        For i = 1 To a
            If i = j Then
                vbimat(i, j) = vbmat(i, j) - vimat(i, j)
            Else
                vbimat(i, j) = vbmat(i, j)
            End If
       Next
    Next
    Donc est ce que je peux identifié vbimat comme Double à l'aide de variable et est ce que je peux calculer vbimat à partir de deux Variant?

    Merci beaucoup!

  4. #4
    Membre averti
    Homme Profil pro
    Stagiaire en génie des procédés
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Stagiaire en génie des procédés
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Par défaut
    En fait j'ai trouvé!

    J'ai simplement mis mes deux matrices en Range pour ensuite faire le calcul matricielle avec ces deux même range.

    Merci pour ton aide parce qu'en fait c'est ça qui m'a fait cliquer!

    Sincèrement,

    Chepa

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

Discussions similaires

  1. clustering d´un design structure matrix code VBA excel
    Par mathis192 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/06/2012, 23h44
  2. [VBA-E] [Excel] Tri automatique
    Par bovi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2002, 10h19
  3. [VBA-E] [Excel] Filtrer le donnees d'une sheet
    Par donia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/09/2002, 10h55
  4. problème avec VBA
    Par Delph dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2002, 13h15

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