OVH Cloud OVH Cloud

Macro pour transposition de données

2 réponses
Avatar
Davelop
Bonjour,
je cherche à faire une macro qui me copierai les données organisé de cette
façon :

1 | A | B | C |
2 | Z | F | C |U| I|
3 | O | X | E |H|

dans une autre feuille sous cette forme :

1 | A |
1 | B |
1 | C |
2 | Z |
2 | F |
2 | C |
2 | U |
2 | I |
3 | O |
3 | X |
3 | E |
3 | H |

Merci d'avance

2 réponses

Avatar
Sylvain
J'ai supposé que les 1,2,3 représentaient des numéros de ligne de la feuille
excel. Tu sélectionnes ta plage de cellules puis exécutes la macro :
---------------------
Public Sub transpose()
Dim i%, j%, ligne%
ligne = 1 'ligne de départ du résultat de la transposition
For i = Selection.Rows(1).Row To Selection.Rows(Selection.Rows.Count).Row
For j = Selection.Columns(1).Column To
Selection.Columns(Selection.Columns.Count).Column
If (ActiveSheet.Cells(i, j) <> "") Then
Worksheets("Feuil2").Cells(ligne, 1) = i
Worksheets("Feuil2").Cells(ligne, 2) = ActiveSheet.Cells(i, j)
ligne = ligne + 1
End If
Next
Next
End Sub
---------------------
Si ce n'est pas tout à fait ça, avec des modifs tu dois t'y retrouver.

Sylvain Caillet

"Davelop" a écrit dans le message de
news:
Bonjour,
je cherche à faire une macro qui me copierai les données organisé de cette
façon :

1 | A | B | C |
2 | Z | F | C |U| I|
3 | O | X | E |H|

dans une autre feuille sous cette forme :

1 | A |
1 | B |
1 | C |
2 | Z |
2 | F |
2 | C |
2 | U |
2 | I |
3 | O |
3 | X |
3 | E |
3 | H |

Merci d'avance


Avatar
Davelop
Hello Sylvain !

Merci pour la rapidité de réponse.
Je vais regarder cela le plus rapidement possible.
Je ne sais pas si cela change beaucoup la macro mais les 1,2,3 ne sont pas
les n° de lignes mais une autre colonne (où il y aurait put y avoir d'autres
nombres par forcément en rapport avec le n° de ligne)

Merci


"Sylvain" wrote:

J'ai supposé que les 1,2,3 représentaient des numéros de ligne de la feuille
excel. Tu sélectionnes ta plage de cellules puis exécutes la macro :
---------------------
Public Sub transpose()
Dim i%, j%, ligne%
ligne = 1 'ligne de départ du résultat de la transposition
For i = Selection.Rows(1).Row To Selection.Rows(Selection.Rows.Count).Row
For j = Selection.Columns(1).Column To
Selection.Columns(Selection.Columns.Count).Column
If (ActiveSheet.Cells(i, j) <> "") Then
Worksheets("Feuil2").Cells(ligne, 1) = i
Worksheets("Feuil2").Cells(ligne, 2) = ActiveSheet.Cells(i, j)
ligne = ligne + 1
End If
Next
Next
End Sub
---------------------
Si ce n'est pas tout à fait ça, avec des modifs tu dois t'y retrouver.

Sylvain Caillet

"Davelop" a écrit dans le message de
news:
Bonjour,
je cherche à faire une macro qui me copierai les données organisé de cette
façon :

1 | A | B | C |
2 | Z | F | C |U| I|
3 | O | X | E |H|

dans une autre feuille sous cette forme :

1 | A |
1 | B |
1 | C |
2 | Z |
2 | F |
2 | C |
2 | U |
2 | I |
3 | O |
3 | X |
3 | E |
3 | H |

Merci d'avance