J'ai un fichier comprenant plus de 2000 lignes avec des infos
identiques mais qui ne sont pas rang=E9es 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
=E7a marche par couple de cellule : devant chaque nombre, j'ai un
indicateur (17 au total).
Pour l'instant, j'ai essay=E9 avec des codes :
If Range("T" & ActiveCell.Row).Value =3D "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=E8s efficient.
Une id=E9e ? Une suggestion ?
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+
bonjour Sylvain,
je ne suis pas sur d'avoir compris,
as-tu essayé avec Données, Convertir
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 ?
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.
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+
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.
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
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
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.
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 nom et le chiffre associé sont-ils dans la même cellule ?
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+
le nom et le chiffre associé sont-ils dans la même cellule ?
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.
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
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
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+
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
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.
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
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
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
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+
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
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.
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
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
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
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+
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
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.
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
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
ps/ Merci au Webmaster de suprimer mes messages en trop (4 avec celui-ci) sur ce fil
isabelle
ps/
Merci au Webmaster de suprimer mes messages en trop (4 avec celui-ci)
sur ce fil