1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| Dim tableau_initial As Worksheet, tableau_filtré As Worksheet, tabloR(), i&, j&, k&, NombreColonne&
Private Sub Worksheet_Activate()
Set tableau_initial = Sheets("tableau initial")
Set tableau_filtré = Sheets("tableau filtré")
tableau_filtré.Range("A1").CurrentRegion.Offset(1, 0).Clear
NombreColonne = 10
k = 0
For i = 2 To tableau_initial.Range("A65536").End(xlUp).Row
If tableau_initial.Rows(i & ":" & i).EntireRow.Hidden = False Then
ReDim Preserve tabloR(NombreColonne, k + 1)
For j = 1 To NombreColonne
If j = 2 Then
tabloR(j - 1, k) = tableau_initial.Cells(i, j).Value * 1
Else
tabloR(j - 1, k) = tableau_initial.Cells(i, j).Value
End If
Next j
k = k + 1
End If
Next i
tableau_filtré.Range("A1").CurrentRegion.Offset(1, 0).Clear
' tableau_filtré.Range("A2").Resize(UBound(tabloR, 2), NombreColonne) = Application.Transpose(tabloR)
tableau_filtré.Range("A2").Resize(UBound(tabloR, 2), NombreColonne) = Transpose_pmo(tabloR) '///modif pmo
End Sub
'///modif pmo
Function Transpose_pmo(Tablo As Variant) As Variant
Dim i&
Dim j&
Dim T()
'---
If Not IsArray(Tablo) Then Exit Function
ReDim T(LBound(Tablo, 2) To UBound(Tablo, 2), LBound(Tablo, 1) To UBound(Tablo, 1))
For i& = LBound(Tablo, 1) To UBound(Tablo, 1)
For j& = LBound(Tablo, 2) To UBound(Tablo, 2)
T(j&, i&) = Tablo(i&, j&)
Next j&
Next i&
Transpose_pmo = T
End Function
'/// |
Partager