nicolasvba Salut ! VBA bien ? | Une autre proposition de solution qui fonctionne. Par exemple, pour copier les onglets qui commencent par "1", puis "2", puis"3"...
Code :
- Sub test()
- Dim MyArray() As String
- Dim FileName As String
- Dim ws As Worksheet
- Dim WB As Workbook
- Dim taille, i, X As Integer
- '(...)
- For i = 1 To 5
- taille = 0
- X = 0
-
- 'Dimensionne le tableau à la bonne taille
- For Each ws In Worksheets
- If Left(ws.Name, 1) = CStr(i) Then
- ReDim MyArray(taille)
- taille = taille + 1
- End If
- Next
-
- 'Alimente le tableau avec le nom de chaque onglet
- For Each ws In Worksheets
- If Left(ws.Name, 1) = CStr(i) Then
- MyArray(X) = ws.Name
- X = X + 1
- End If
- Next
-
- If X <> 0 Then
- FileName = "C:\Users\Public\Documents\Onglets_" & CStr(i) & ".xlsx"
-
- Sheets(MyArray).Copy
- ActiveWorkbook.SaveAs FileName:=FileName _
- , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
- ActiveWindow.Close
- End If
-
- Next
- End Sub
|
Message édité par nicolasvba le 14-08-2015 à 09:08:38 ---------------
La cuillère n'existe pas
|