OVH Cloud OVH Cloud

transformer tableau en lignes

2 réponses
Avatar
xav
bonjour à tous

j'ai un tableau à double entrée du style:

reference 01 02 03 04 ...
REF1 * R RR
REF2 R * *
.....

Et je voudrais des lignes du style :

REF1 01 *
REF1 02 R
REF1 03
REF1 04 RR
REF2 01 R
REF2 02 *
REF2 02 *
.........

Quelqun peut m'aider?
merci d'avance
xav

2 réponses

Avatar
PMO
Bonjour,

Une piste avec le code suivant à copier dans
un module standard.

FAIRE
1) Sélectionner la plage à transposer
2) Lancer la macro PMO_Transpose

Une fois lancée, la macro crée une nouvelle
feuille contenant le résultat escompté.

'*******************
Sub PMO_Transpose()
Dim h&
Dim i&
Dim j&
Dim R As Range
Dim T()
Dim var
Dim tempo
Set R = Range(Selection.Address)
'---- Validité de la sélection (à parfaire) ---
i& = R.Rows.Count
If i& < 3 Then Exit Sub
j& = R.Columns.Count
If j& < 2 Then Exit Sub
If Application.WorksheetFunction.CountBlank(R) _
= i& * j& Then Exit Sub
'---- Fabrication du tableau résultat ----
var = R
ReDim T(1 To i& * j&, 1 To 3)
For i& = 2 To UBound(var, 1)
tempo = var(i&, 1)
For j& = 2 To UBound(var, 2)
h& = h& + 1
T(h&, 1) = tempo
T(h&, 2) = CStr(var(1, j&))
T(h&, 3) = var(i&, j&)
Next j&
Next i&
'---- Inscription dans une nouvelle feuille ----
Sheets.Add
Range(Cells(1, 1), _
Cells(UBound(T, 1), UBound(T, 2))) = T
End Sub
'*******************

Cordialement.

--
PMO
Patrick Morange



bonjour à tous

j'ai un tableau à double entrée du style:

reference 01 02 03 04 ...
REF1 * R RR
REF2 R * *
......

Et je voudrais des lignes du style :

REF1 01 *
REF1 02 R
REF1 03
REF1 04 RR
REF2 01 R
REF2 02 *
REF2 02 *
..........

Quelqun peut m'aider?
merci d'avance
xav





Avatar
xav
MERCI PÖUR LA PISTE

XAV

"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> wrote in message
news:
Bonjour,

Une piste avec le code suivant à copier dans
un module standard.

FAIRE
1) Sélectionner la plage à transposer
2) Lancer la macro PMO_Transpose

Une fois lancée, la macro crée une nouvelle
feuille contenant le résultat escompté.

'*******************
Sub PMO_Transpose()
Dim h&
Dim i&
Dim j&
Dim R As Range
Dim T()
Dim var
Dim tempo
Set R = Range(Selection.Address)
'---- Validité de la sélection (à parfaire) ---
i& = R.Rows.Count
If i& < 3 Then Exit Sub
j& = R.Columns.Count
If j& < 2 Then Exit Sub
If Application.WorksheetFunction.CountBlank(R) _
= i& * j& Then Exit Sub
'---- Fabrication du tableau résultat ----
var = R
ReDim T(1 To i& * j&, 1 To 3)
For i& = 2 To UBound(var, 1)
tempo = var(i&, 1)
For j& = 2 To UBound(var, 2)
h& = h& + 1
T(h&, 1) = tempo
T(h&, 2) = CStr(var(1, j&))
T(h&, 3) = var(i&, j&)
Next j&
Next i&
'---- Inscription dans une nouvelle feuille ----
Sheets.Add
Range(Cells(1, 1), _
Cells(UBound(T, 1), UBound(T, 2))) = T
End Sub
'*******************

Cordialement.

--
PMO
Patrick Morange



bonjour à tous

j'ai un tableau à double entrée du style:

reference 01 02 03 04 ...
REF1 * R RR
REF2 R * *
......

Et je voudrais des lignes du style :

REF1 01 *
REF1 02 R
REF1 03
REF1 04 RR
REF2 01 R
REF2 02 *
REF2 02 *
..........

Quelqun peut m'aider?
merci d'avance
xav