Pb de plages de cellules (mémoires) !!

  • Initiateur de la discussion Initiateur de la discussion vinnie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

V

vinnie

Guest
Bonjour,

je souhaiterais automatiser une multiplication entre 2 matrices avec une macro, mais je ne sais pas comment faire pour mettre en mémoire une plage de cellules, quelqu'un sait-il ??
je sais sélectionner une plage puis une deuxième mais je ne peux multiplier les deux plages de cellules (matrices), il doit certainement exister une facon de les mettre en mémoire pour ensuite les multiplier, non ?? à l'aide !! 😛

Vinnie
 
Re : Pb de plages de cellules (mémoires) !!

Bonsoir


Je ne sais si cela pourra t'aider mais ca cause matrice et cie

un module dont je n'ai pas tout saisi

Tout ce que j'ai retenu pour VBA c'est:
Application.WorksheetFunction.MMult

Ce qui est l'équivalent en formule de:
PRODUITMAT

Voir aussi
Calcule le produit de deux matrices. Le résultat est une matrice comportant le même nombre de lignes que matrice1 et le même nombre de colonnes que matrice2.
Syntaxe
PRODUITMAT(matrice1;matrice2)
 
Dernière édition:
Re : Pb de plages de cellules (mémoires) !!

Salut Bruno et Staple,

en fait, vous avez raison je ne suis pas obligé de faire du vba, et j'ai vu qu'il existe deja des formules pour les produits de matrice que j'ai d'ailleurs utilisé plusieurs fois sauf que la, la différence c'est que mes matrices en entrée ne sont pas fixes (plage de cellukles fixes)!!
au départ, j'ai un bouton pour créer une matrice (3x3, ou 4x4 ou etc...), et pour faire simple, en appuyant sur un second bouton je voudrais que celle-ci soit multipliée par une autre matrice (matrice identitée par exemple)..

...mais ne sachant pas à l'avance les dimensions de la matrice, je ne peux pas utiliser PRODUITMAT(matrice1;matrice2), enfin je crois , j'ai essayé mais j'ai pas réussi !!je suis sur que c'est faisable pourtant, mais je suis pas très douée en prog !! 😱

merci qd meme, 🙂
 
Re : Pb de plages de cellules (mémoires) !!

Re


En cherchant sur le net:

PRODUITMAT Excel

Tu devrais trouver de quoi de t'aider

Essaye aussi le moteur de recherche du forum.


Tu n'aurais pas un exemple de tes matrices?

Avec le résultat escompté?

(données anonymisées)

EDITION: glané sur le net
SOURCE:ici

Dans excel, je l'appelle comme ceci: je sélectionne 4 cases et je mets =produitmat(A1:B2;D1:E2) puis ctrl+maj+enter pour générer le tableau. A1:B2 et D1:E2 contiennent des valeurs booléennes.

Code:
[COLOR=#0000ff]Function[/COLOR] [B]produitmat[/B](x, y)
    mat1 = x
    mat2 = y
    
    [COLOR=#0000ff]Dim[/COLOR] resultat() [COLOR=#0000ff]As[/COLOR] [COLOR=#0000ff]Boolean[/COLOR]
    l1 = UBound(mat1, [COLOR=#cc66cc]1[/COLOR])
    l2 = UBound(mat2, [COLOR=#cc66cc]1[/COLOR])
    c1 = UBound(mat1, [COLOR=#cc66cc]2[/COLOR])
    c2 = UBound(mat2, [COLOR=#cc66cc]2[/COLOR])
    
    [COLOR=#0000ff]If[/COLOR] (c1 = l2) [COLOR=#0000ff]Then[/COLOR]
        [COLOR=#0000ff]ReDim[/COLOR] resultat(l1, c2)
        [COLOR=#0000ff]For[/COLOR] i = [COLOR=#cc66cc]1[/COLOR] [COLOR=#0000ff]To[/COLOR] l1
            [COLOR=#0000ff]For[/COLOR] j = [COLOR=#cc66cc]1[/COLOR] [COLOR=#0000ff]To[/COLOR] c2
                resultat(i, j) = [COLOR=#0000ff]False[/COLOR]
                [COLOR=#0000ff]For[/COLOR] k = [COLOR=#cc66cc]1[/COLOR] [COLOR=#0000ff]To[/COLOR] c1
                    [COLOR=#0000ff]If[/COLOR] (mat1(i, k) = [COLOR=#0000ff]True[/COLOR] [COLOR=#0000ff]And[/COLOR] mat2(k, j) = [COLOR=#0000ff]True[/COLOR]) [COLOR=#0000ff]Then[/COLOR]
                        resultat(i, j) = [COLOR=#0000ff]True[/COLOR]
                    [COLOR=#0000ff]End[/COLOR] [COLOR=#0000ff]If[/COLOR]
                [COLOR=#0000ff]Next[/COLOR] k
            [COLOR=#0000ff]Next[/COLOR] j
        [COLOR=#0000ff]Next[/COLOR] i
        [B]produitmat[/B] = resultat
[COLOR=#0000ff]End[/COLOR] [COLOR=#0000ff]If[/COLOR]
[COLOR=#0000ff]End[/COLOR] [COLOR=#0000ff]Function
[/COLOR]
 
Dernière édition:
Re : Pb de plages de cellules (mémoires) !!

bonjour,

merci Staple, je vais regarder ca ce soir pour voir si ca peut marcher en le modifiant comme je veux, peut etre que...

...si j'ai bien un fichier avec mes matrices, mais le calcul est un peu plus compliqué, avec 2 produits de matrices, je suis pas sur que ca puisse aider plus...lol...

bizz, ++
Vinnie
 
Re : Pb de plages de cellules (mémoires) !!

Re moi !

je viens de regarder ton p'tit fichier, c'est bien quelque chose comme ca effectivement, justement j'utilise range pour sélectionner les plages mais je savais pas comment les mettre "en mémoire", j'ai vu que tu les mets tout simplement dans des variables mat1 et mat2, ca à l'air simple je vais essayer avec mon p'ti programme et je te dis ca !!!

...en tout cas, merci beaucoup Staple !!

bizz, ++
Vinnie
 
Re : Pb de plages de cellules (mémoires) !!

Salut JM !

ca à l'air pas mal, merci beaucoup, mais malheureusement, j'ai du mal à tout comprendre (...surtout au niveau des adresses !!), mais ca ressemble pas mal à ce que je cherche à faire !!...mais l'adapter à mon fichier...😕...je crois que je vais y aller étape par étape !! je bloque sur 2 calculs de matrices...je sais pas pourquoi mais je sens que vais toutes me les taper manuellement !!!🙁

...merci infinniment JM !

Vinnie
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
40
Affichages
2 K
Retour