Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 * * ......
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 * *
......
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 * * ......
"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 * * ......
"PMO" <patrickPOINTmorangeAROBASElapostePOINTnet> wrote in message
news:57EE6797-2C9D-4B16-969B-6E77CEACA852@microsoft.com...
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 * *
......
"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 * * ......