Structuration données par colonnes

Le
Sylvain P.
Bonjour à tous,

J'ai un fichier comprenant plus de 2000 lignes avec des infos
identiques mais qui ne sont pas rangées par colonnes.
Ligne1 Paul 2 Jaques 7 Denis 4 Nicole 11
Ligne2 Jaques 5 Denis 4
Ligne3 Paul 8 Jaques 5 Nicole 3

J'aimerais aligner une info par colonne :
Ligne1 Paul 2 Jaques 7 Denis 4 Nicole 11
Ligne2 Jaques 5 Denis 4
Ligne3 Paul 8 Jaques 5 Nicole 3

ça marche par couple de cellule : devant chaque nombre, j'ai un
indicateur (17 au total).

Pour l'instant, j'ai essayé avec des codes :

If Range("T" & ActiveCell.Row).Value = "Paul" Then
Selection.Resize(Selection.Rows.Count, Selection.Columns.Count +
2).Select
Selection.Cut
Range("AA" & ActiveCell.Row).Select
ActiveSheet.Paste
End If

Mais ce n'est pas très efficient.
Une idée ? Une suggestion ?

Merci par avance.

A+
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #23229981
bonjour Sylvain,

je ne suis pas sur d'avoir compris,
as-tu essayé avec Données, Convertir

isabelle
------------------------------------------------------------------

Le 2011-03-24 11:53, Sylvain P. a écrit :
Bonjour à tous,

J'ai un fichier comprenant plus de 2000 lignes avec des infos
identiques mais qui ne sont pas rangées par colonnes.
Ligne1 Paul 2 Jaques 7 Denis 4 Nicole 11
Ligne2 Jaques 5 Denis 4
Ligne3 Paul 8 Jaques 5 Nicole 3

J'aimerais aligner une info par colonne :
Ligne1 Paul 2 Jaques 7 Denis 4 Nicole 11
Ligne2 Jaques 5 Denis 4
Ligne3 Paul 8 Jaques 5 Nicole 3

ça marche par couple de cellule : devant chaque nombre, j'ai un
indicateur (17 au total).

Pour l'instant, j'ai essayé avec des codes :

If Range("T"& ActiveCell.Row).Value = "Paul" Then
Selection.Resize(Selection.Rows.Count, Selection.Columns.Count +
2).Select
Selection.Cut
Range("AA"& ActiveCell.Row).Select
ActiveSheet.Paste
End If

Mais ce n'est pas très efficient.
Une idée ? Une suggestion ?

Merci par avance.

A+

Sylvain P.
Le #23230071
Bonjour Isabelle,

Les données sont bien dans des colonnes différentes mais jamais dans
les colonnes.
Par exemple, les données relatives à Paul peuvent être en colonne D e n
ligne 1 et en colonne E en ligne 2.
J'aimerais qu'elles soient systématiquement en colonne D.

J'espère être plus clair :!

A+
Jean-Claude
Le #23230081
Bonjour,

peut-être simplement par une formule :
- à droite de vos données, créer un tableau avec en en-tête le nom des 17
personnes possibles,
- dans la 1ère cellule de cette zone, la formule :
=SI(ESTNA(EQUIV(J$1;$A2:$H2;0));"";INDEX($A2:$H2;1;EQUIV(J$1;$A2:$H2;0)+1))
- à recopier dans les zones de ce tableau.

Cf. http://cjoint.com/?1dyrWhKjnKj
à partir des données de votre exemple.

Une fois le tableau résultat créé, il suffit d'un copier/coller
spécial/valeur pour le fixer.

Cordialement,
Jean-Claude
isabelle
Le #23230721
le nom et le chiffre associé sont-ils dans la même cellule ?

isabelle
------------------------------------------------------------------

Le 2011-03-24 12:17, Sylvain P. a écrit :
Bonjour Isabelle,

Les données sont bien dans des colonnes différentes mais jamais dans
les colonnes.
Par exemple, les données relatives à Paul peuvent être en colonne D en
ligne 1 et en colonne E en ligne 2.
J'aimerais qu'elles soient systématiquement en colonne D.

J'espère être plus clair :!

A+

isabelle
Le #23230911
si le nom et le chiffre ont chacun leur cellule,

Sub Macro1()
Dim LesNom(), plg As Range, c As Range, x As Integer, col As Integer
Set plg = Sheets("Feuil1").Range("A1:H3") '<-----adapter l'adresse de
la plage
ReDim Preserve LesNom(x)
LesNom(x) = plg.Item(1)

For Each c In plg
If Application.IsText(c) Then
If IsError(Application.Match(c, LesNom, 0)) Then
ReDim Preserve LesNom(x)
LesNom(x) = c
x = x + 2
End If
End If
Next

For Each c In plg
If Application.IsText(c) Then
col = Application.Match(c, LesNom, 0) + 1
Sheets("Feuil2").Cells(c.Row, col) = c '<-----résultat en Feuil2
Sheets("Feuil2").Cells(c.Row, col + 1) = c.Offset(0, 1)
'<-----résultat en Feuil2
End If
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-03-24 16:41, isabelle a écrit :
le nom et le chiffre associé sont-ils dans la même cellule ?

isabelle
------------------------------------------------------------------

Le 2011-03-24 12:17, Sylvain P. a écrit :
Bonjour Isabelle,

Les données sont bien dans des colonnes différentes mais jamais dans
les colonnes.
Par exemple, les données relatives à Paul peuvent être en colonne D en
ligne 1 et en colonne E en ligne 2.
J'aimerais qu'elles soient systématiquement en colonne D.

J'espère être plus clair :!

A+
isabelle
Le #23231121
soit le nom et le chiffre associé ne sont pas dans la même cellule

Sub Macro1()
Dim LesNom(), plg As Range, c As Range, x As Integer, col As Integer
Set plg = Sheets("Feuil1").Range("A1:H3") '<-----adapter l'adresse de
la plage
ReDim Preserve LesNom(x)
LesNom(x) = ""

For Each c In plg
If Application.IsText(c) Then
If IsError(Application.Match(c, LesNom, 0)) Then
ReDim Preserve LesNom(x)
LesNom(x) = c
x = x + 2
End If
col = Application.Match(c, LesNom, 0)
Sheets("Feuil2").Cells(c.Row, col) = c '<-----résultat en Feuil2
Sheets("Feuil2").Cells(c.Row, col + 1) = c.Offset(0, 1)
'<-----résultat en Feuil2
End If
Next
End Sub

ou bien le nom et le chiffre associé sont dans la même cellule

Sub Macro2()
Dim LesNom(), plg As Range, c As Range, x As Integer, col As Integer, n
Set plg = Sheets("Feuil3").Range("A1:D3") '<-----adapter l'adresse de
la plage
n = Split(plg.Item(1), " ")
ReDim Preserve LesNom(x)
LesNom(x) = n(0)

For Each c In plg
If Not c = Empty Then
n = Split(c, " ")
If IsError(Application.Match(n(0), LesNom, 0)) Then
x = x + 1
ReDim Preserve LesNom(x)
LesNom(x) = n(0)
End If
col = Application.Match(n(0), LesNom, 0)
Sheets("Feuil4").Cells(c.Row, col) = n(0) & " " & n(1)
'<-----résultat en Feuil4
End If
Next

End Sub

isabelle
------------------------------------------------------------------

Le 2011-03-24 16:41, isabelle a écrit :
le nom et le chiffre associé sont-ils dans la même cellule ?

isabelle
------------------------------------------------------------------

Le 2011-03-24 12:17, Sylvain P. a écrit :
Bonjour Isabelle,

Les données sont bien dans des colonnes différentes mais jamais dans
les colonnes.
Par exemple, les données relatives à Paul peuvent être en colonne D en
ligne 1 et en colonne E en ligne 2.
J'aimerais qu'elles soient systématiquement en colonne D.

J'espère être plus clair :!

A+
isabelle
Le #23231131
soit le nom et le chiffre associé ne sont pas dans la même cellule

Sub Macro1()
Dim LesNom(), plg As Range, c As Range, x As Integer, col As Integer
Set plg = Sheets("Feuil1").Range("A1:H3") '<-----adapter l'adresse de
la plage
ReDim Preserve LesNom(x)
For Each c In plg
If Application.IsText(c) Then
If IsError(Application.Match(c, LesNom, 0)) Then
ReDim Preserve LesNom(x)
LesNom(x) = c
x = x + 2
End If
col = Application.Match(c, LesNom, 0)
Sheets("Feuil2").Cells(c.Row, col) = c
'<-----résultat en Feuil2
Sheets("Feuil2").Cells(c.Row, col + 1) = c.Offset(0, 1)
'<-----résultat en Feuil2
End If
Next
End Sub

ou bien le nom et le chiffre associé sont dans la même cellule

Sub Macro2()
Dim LesNom(), plg As Range, c As Range, x As Integer, col As Integer, n
Set plg = Sheets("Feuil3").Range("A1:D3") '<-----adapter l'adresse de
la plage
n = Split(plg.Item(1), " ")
ReDim Preserve LesNom(x)
For Each c In plg
If Not c = Empty Then
n = Split(c, " ")
If IsError(Application.Match(n(0), LesNom, 0)) Then
ReDim Preserve LesNom(x)
LesNom(x) = n(0)
x = x + 1
End If
col = Application.Match(n(0), LesNom, 0)
Sheets("Feuil4").Cells(c.Row, col) = n(0) & " " & n(1)
'<-----résultat en Feuil4
End If
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-03-24 16:41, isabelle a écrit :
le nom et le chiffre associé sont-ils dans la même cellule ?

isabelle
------------------------------------------------------------------

Le 2011-03-24 12:17, Sylvain P. a écrit :
Bonjour Isabelle,

Les données sont bien dans des colonnes différentes mais jamais dans
les colonnes.
Par exemple, les données relatives à Paul peuvent être en colonne D en
ligne 1 et en colonne E en ligne 2.
J'aimerais qu'elles soient systématiquement en colonne D.

J'espère être plus clair :!

A+
isabelle
Le #23231191
ps/
Merci au Webmaster de suprimer mes messages en trop (4 avec celui-ci)
sur ce fil

isabelle
Publicité
Poster une réponse
Anonyme