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 48 49 50 51 52 53
| Option Base 0
Sub traitement_cste_4()
'J'active la feuille que je veux retraiter
'Workbooks("CSTE.xlsx").Sheets("CSTE").Activate
Dim i As Integer
Dim e As Integer
Dim j As Integer
Dim derniere_ligne As Integer
Dim tableau1, tableau2, plage
j = 0
derniere_ligne = Sheets("CSTE").Range("B" & Rows.Count).End(xlUp).Row
Set plage = Sheets("CSTE").Range("A1:T" & derniere_ligne)
tableau1 = plage
ReDim tableau2(1 To UBound(tableau1, 1), 1 To UBound(tableau1, 2)) 'OK si Option Base = 0 ou Option Base = 1
'ReDim tableau2(UBound(tableau1, 1), UBound(tableau1, 2)) 'OK seulement si Option Base = 1
For i = 1 To UBound(tableau1, 1)
'testons le respect du critère 4 chiffres 1 lettre
If tableau1(i, 5) Like "####[A-Z]" Then
'Je remplit les colonnes A à T avec les valeurs qui respectent mon critère
j = j + 1
For e = 1 To UBound(tableau1, 2) 'For e = 1 To 20
tableau2(j, e) = tableau1(i, e)
Next
End If
Next
'Je transfert les valeurs vers l'onglet export en A1
With Workbooks("CSTE.xlsx").Worksheets("Export").Range("A1")
.Resize(UBound(tableau2, 1), UBound(tableau2, 2)).NumberFormat = "General"
.Resize(UBound(tableau2, 1), UBound(tableau2, 2)).Value = tableau2
Set r = .Resize(UBound(tableau2, 1), UBound(tableau2, 2))
'Je transfere la propriété NumberFormat de la première ligne de la plage
For i = 1 To r.Columns.Count
If r.Columns(i).Cells(1, 1).NumberFormat <> plage.Columns(i).Cells(1, 1).NumberFormat Then
r.Columns(i).Cells.NumberFormat = plage.Columns(i).Cells(1, 1).NumberFormat
End If
Next
End With
End Sub |