Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

regrouper des données

3 réponses
Avatar
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

3 réponses

Avatar
Michel
Salut,
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" wrote in message
news:47a77310$0$18052$
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




Avatar
Brunos
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


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

Avatar
Bertrand
Merci Michel et Bruno pour vos réponses.
Je vais regarder cela attentivement ce soir (et surtout essayer de
comprendre :) )


Bertrand

"Bertrand" a écrit dans le message de
news: 47a77310$0$18052$
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