Matrice sur Excel 2007

doc31

XLDnaute Nouveau
Bonjour,

J'ai besoin de votre aide, j'ai besoin d'un macro Excel, pour crée une matrice carée a partir d'une liste sur excel :

n ligne, et deux colonnes :

Diplôme Fonction
D1 C
D2 C
D3 E
D4 O
D5 C
D6 O
D7 E
...

L'objectif est de crée une matrice carée ou la celulle D1 (ligne) - D2 (colonne), constitue le lien entre D1 et D2, en d'autre terme D1 = C, D2= C donc D1 et D2 = 1. L'absence de relation =0. Par défaut la relation entre Di-Di = 0, et la relation Di-Dj = nombre de lien ( 1, 2, 3)...

la matrice :

Xij D1 D2 D3 D4 D5 D6 D7
D1
D2
D3
D4
D5
D6
D7

J'espére que c'est lisible.

Il y a une personne qui a essayé de m'aider sur un autre de forum mais la formule est inversé (c'est ma faut j'ai mal expliqué mon besoin)

Merci de m'aidez je suis au bout du gouffre,

Merci à tous
 

Kotov

XLDnaute Impliqué
Re : Matrice sur Excel 2007

Bonsoir Doc31, Skoobi, le forum,

Tu trouveras en pièce jointe un fichier qui répond à ta demande.
Il te suffit de cliquer sur le bouton pour voir réaliser une matrice carrée dynamique (variable selon le nombre d'items à comparer). En conséquence, la matrice sera toujours disposée sous ton fichier quelque soit sa longueur (sauf si plus de 254 diplômes à contrôler)

Le code en VBA :
Code:
Private Sub btnMatricCcarree_Click()
Dim T()
Dim n&, r&, c&, i&, ii&, xij&

n = Cells(65536, 1).End(3).Row

ReDim T(n, 1)

For r = 0 To n
    T(r, 0) = Cells(r + 1, 1)
    T(r, 1) = Cells(r + 1, 2)
    Cells(r + n + 5, 2) = T(r, 0)
    Cells(n + 4, 3 + r) = T(r, 0)
Next r
 
For i = 0 To n - 1
    r = n + i + 5
    ii = 0
     For c = 3 To n + 2
       If T(i, 1) = T(ii, 1) Then
            Cells(r, c) = 1
            xij = xij + 1
        Else
            Cells(r, c) = 0
        End If
        ii = ii + 1
    Next c
Next i

Cells(n + 4, 2) = xij
Cells(n + 4, 1).Select
End Sub

Pour info et pour suivre l'avis de Skoobi, il est préférable de poster tes prochaines demandes sur le forum spécial XL 2007.
Cela dit, cette macro doit fonctionner avec les versions antérieures puisque que j'ai défini la page active comme une page des versions antérieures (65536 lignes au lieu des 1048576 disponibles dans la version 2007. Aucune utilité d'ailleurs, puisque s'agissant d'une matrice carrée tu es limité par le nombre de colonnes disponibles soit 16384 )


Bonne soirée
Kotov
 

Pièces jointes

  • MatriceCarree.xls
    36.5 KB · Affichages: 88
Dernière édition:

ODVJ

XLDnaute Impliqué
Re : Matrice sur Excel 2007

Bonsoir,

Tu nommes Fonction la liste des fonctions (balèse) et Diplôme la liste des diplômes
Si ton tableau résultat est en A1, tu mets en B2 la formule :
=SI(B$1=$A2,0,SOMMEPROD((Fonction=INDEX(Fonction,EQUIV($A2,Diplôme,0)))*(Diplôme=B$1)*1))

(tu remplaces les "," par des ";")

Tu recopies dans toutes les cellules.

cordialement

PS : tu aurais eu la même réponse sur CCM
 

Kotov

XLDnaute Impliqué
Re : Matrice sur Excel 2007


J'ai besoin de votre aide, j'ai besoin d'un macro Excel, pour crée une matrice carée a partir d'une liste sur excel :
.........

Merci de m'aidez je suis au bout du gouffre,

Tu vois ODJV, nous sommes intervenus trop tard : au bout de 3 jours sans réponse, on peut raisonnablement considérer que Doc31 ne sortira plus du gouffre ! ;)
 

Discussions similaires

A
Réponses
7
Affichages
2 K
A

Statistiques des forums

Discussions
312 145
Messages
2 085 762
Membres
102 966
dernier inscrit
InitialPP