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

VBA Discussion :

Matrice en VBA


Sujet :

VBA

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Matrice en VBA
    Bonjour,

    Je suis nouveau en VBA et j'ai pas réussi à à résoudre un petit problème.
    Est ce que quelqu'un peut m'aider pour résoudre le problème suivant:
    Écrire un programme en VBA qui génère une feuille comprenant deux matrices A(3,3) et B(3,2), de nombres aléatoires entre 1 et 10 ainsi que leur produit. Les matrices seront générées à partir d'informations de contrôle sur la feuille principale.

    Merci d'avance,
    Marco

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par es.marco
    (...) de nombres aléatoires entre 1 et 10 ainsi que leur produit. Les matrices seront générées à partir d'informations de contrôle sur la feuille principale.
    ??? Aléatoires mais générés à partir d'information de contrôle ???
    -> C'est d'une logique paradoxale...
    ??? nombres aléatoires entre 1 et 10 ainsi que leur produit ???
    -> produit entre eux? produit de combien de nombres entre eux? produit des 1 à 10 avec les produits des produits?

    En fait, je crois que j'ai pas bien saisi le problème....

    Néanmoins, le code suivant te donne un nombre aléatoire de 1 à 10 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Randomize
    MsgBox Fix(Rnd() * 10) + 1

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    je pense que tu peux faire qch comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    dim mat1 as variant
    dim i, j as integer
    redim mat1(1 to 3 ,1 to 3)
    for i = 1 to 3
    for j = 1 to 3
    mat1(i,j) = ce que l'autre personne a donné(machin random)
    next j
    next i
     
    range("A1:C3").value = mat1

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos réponses.

    Je pense que j'ai pas bien expliqué mon problème.

    Je veux construire 2 matrices sur excel. après monter un petit programme en VBA qui génère une feuille comprenant deux matrices de nombres aléatoires ainsi que leur produit:
    ca veut matrice A de nombre aléatoire
    matrice B de nombre aléatoire
    matrcice C = A*B

    Merci d'avance,
    marco

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Je reprends ce que t'as écrit tangjuncn en y rajoutant la matrice 3x2:
    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 tes()
        Dim mat1 As Variant, mat2 As Variant
        ReDim mat1(1 To 3, 1 To 3)
        ReDim mat2(1 To 3, 1 To 2)
        For i = 1 To 3
            For j = 1 To 3
                Randomize
                mat1(i, j) = Fix(Rnd * 10) + 1
            Next j
        Next i
        Range("A1:C3").Value = mat1
        For i = 1 To 3
            For j = 1 To 2
                Randomize
                mat2(i, j) = Fix(Rnd * 10) + 1
            Next j
        Next i
        Range("E1:F3").Value = mat2
        Range("H1:I3").Value = ProduitMatriciel(mat1, mat2)
        Erase mat1: Erase mat2
    End Sub
    Plus la fonction de ProduitMatriciel, que tu aurais pu écrire toi même, puisque c'est que des maths :
    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
    Function ProduitMatriciel(mLeft As Variant, mRight As Variant) As Variant
        On Error GoTo errHandler
        If UBound(mLeft, 2) <> UBound(mRight, 1) Then GoTo errHandler
        Dim mat As Variant, LineSum
        ReDim mat(1 To UBound(mLeft, 1), 1 To UBound(mRight, 2))
        For j = 1 To UBound(mRight, 2)
            For i = 1 To UBound(mLeft, 1)
                LineSum = 0
                For k = 1 To UBound(mRight, 1)
                    LineSum = LineSum + mLeft(i, k) * mRight(k, j)
                Next k
                mat(i, j) = LineSum
            Next i
        Next j
        ProduitMatriciel = mat
        Erase mat
        Exit Function
    errHandler:
        ProduitMatriciel = Null
    End Function

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup.

    je vais essayer ça et je vous donnerai des nouvelles.

    Merci encore,
    Marco

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Janvier 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par es.marco Voir le message
    Merci beaucoup.

    je vais essayer ça et je vous donnerai des nouvelles.

    Merci encore,
    Marco
    Ça fait 12 ans qu'on attend de tes nouvelles.

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

Discussions similaires

  1. matrice en VBA
    Par ninette24 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 22/02/2009, 23h30
  2. variance matrice en VBA
    Par fox971 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/11/2008, 18h41
  3. matrice sous VBA
    Par sash6 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/12/2007, 14h35
  4. dimension d'une matrice sous VBA
    Par galaguiloe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/06/2007, 11h20
  5. Produit de matrices en vba
    Par gcadieux dans le forum Général VBA
    Réponses: 4
    Dernier message: 26/09/2006, 16h54

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