regrouper des données
Le
Bertrand
Bonsoir à tous,
J'ai une base de données d'entreprises (20000 lignes) et je souhaite mettre
en evidence les liens d'actionnariat entre elles.
J'ai fait un petit exemple (fichier sur: http://cjoint.com/?cevoWYglI5 )
NOM SOCIETE ACTIONNAIRE
HOLTAU LARIVIERE
MECA ROULT
APC DES
LARIVIERE VOLFONY
VOLFONY MULL
ROULT DESENFAN
Je souhaiterais arriver à quelquechose du style:
NOM SOCIETE ACTIONNAIRE
HOLTAU LARIVIERE
LARIVIERE VOLFONY
VOLFONY MULL
ROULT DESENFAN
APC DES
MECA ROULT
Le tableau met en evidence que les 3 premieres sociétés ont un lien entre
elles (elle sont regroupées alors qu'elles ne l'étaient pas dans le tableau
de départ)
J'ai essayé de faire quelquechose avec un RECHERCHEV mais sans succès (je
n'arrive pas a trouver le moyen pour regrouper les données "liées" les une
apres les autres). Quelqu'un aurait une idée sur la maniére de procéder
Merci par avance de vos idées pour traiter le problème,
Bertrand
J'ai une base de données d'entreprises (20000 lignes) et je souhaite mettre
en evidence les liens d'actionnariat entre elles.
J'ai fait un petit exemple (fichier sur: http://cjoint.com/?cevoWYglI5 )
NOM SOCIETE ACTIONNAIRE
HOLTAU LARIVIERE
MECA ROULT
APC DES
LARIVIERE VOLFONY
VOLFONY MULL
ROULT DESENFAN
Je souhaiterais arriver à quelquechose du style:
NOM SOCIETE ACTIONNAIRE
HOLTAU LARIVIERE
LARIVIERE VOLFONY
VOLFONY MULL
ROULT DESENFAN
APC DES
MECA ROULT
Le tableau met en evidence que les 3 premieres sociétés ont un lien entre
elles (elle sont regroupées alors qu'elles ne l'étaient pas dans le tableau
de départ)
J'ai essayé de faire quelquechose avec un RECHERCHEV mais sans succès (je
n'arrive pas a trouver le moyen pour regrouper les données "liées" les une
apres les autres). Quelqu'un aurait une idée sur la maniére de procéder
Merci par avance de vos idées pour traiter le problème,
Bertrand

Poser une question


un truc vite fait et teste selon ton exemple.
A toi de definir le nombre de ligne la ca va de la ligne 2 jusqu'a la ligne
7
@+
Michel.
Sub essai()
For I = 2 To 7
Range("A" & I).Select
ligne = I
col1 = Range("A" & I).Value
col2 = Range("B" & I).Value
Cells.Find(What:=col1, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse).Activate
If ActiveCell.Column = 2 And ActiveCell.Row > I Then
Selection.Cut
Rows(I + 1).Select
Selection.Insert Shift:=xlDown
End If
Range("B" & I).Select
Cells.Find(What:=col2, After:¬tiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:úlse).Activate
If ActiveCell.Column = 1 And ActiveCell.Row > I Then
Rows(ActiveCell.Row).Select
Selection.Cut
Rows(I + 1).Select
Selection.Insert Shift:=xlDown
End If
Next I
End Sub
"Bertrand" news:47a77310$0$18052$
Bonsoir,
Voici une méthode (assez) simple, sans macro, pour faire apparaître des
liens, mais sans trier.
Dans ton exemple, les sociétés sont en colonne B, je nomme la liste
"societe". Les actionnaires sont en colonne C, je nomme la liste
"action".
On fait apparaître les liens en colonne A et D.
En colonne A, =INDEX(societe;EQUIV(B6;action;0)), apparaissent les
sociétés dont l'actionnaire est une société dans la colonne B.
En colonne D, =INDEX(action;EQUIV(C6;societe;0)), apparaissent les
actionnaires dont la société est un actionnaire dans la colonne C.
Exemple sur ton tableau : http://cjoint.com/data/cexwCYOjLm.htm
Dans l'exemple j'ai utilisé =SI(ESTNA(... pour éliminer les valeurs
#N/A qui ne font pas joli.
=SI(ESTNA(EQUIV(C6;societe;0));"";INDEX(action;EQUIV(C6;societe;0))).
--
Brunos
Je vais regarder cela attentivement ce soir (et surtout essayer de
comprendre :) )
Bertrand
"Bertrand" news: 47a77310$0$18052$