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 ranges 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 trs efficient.
Une ide ? Une suggestion ?

Merci par avance.

A+
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