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
|
Function dernierNombre(ByVal repertoire As String, nomFeuille As String) As Integer
Dim nomFichier As String, resultat As Integer, temp As Integer
resultat = 0
'Pas conviviable mais on va faire avec du Dir au lieu de passer par du FilesystemObject
'(la flemme...)
nomFichier = Dir(repertoire & nomFeuille & "*.xls")
While (nomFichier <> "")
temp = Val(Right(Left(nomFichier, Len(nomFichier) - 4), Len(Left(nomFichier, Len(nomFichier) - 4)) - Len(nomFeuille)))
resultat = IIf(resultat > temp, resultat, temp)
nomFichier = Dir()
Wend
dernierNombre = resultat + 1
End Function
Sub exporterExcel(ByVal repertoire As String, ByVal nomFeuille As String)
Dim feuille As Excel.Worksheet, classeurCopie As Excel.Workbook, increment As Integer
Set feuille = ThisWorkbook.Worksheets(nomFeuille)
'Récupérer le dernier numéro de feuille créer dans le répertoire
increment = dernierNombre(repertoire, feuille.Name)
feuille.Copy
Set classeurCopie = ActiveWorkbook
Application.DisplayAlerts = False
classeurCopie.SaveAs repertoire & feuille.Name & increment, xlNormal
Application.DisplayAlerts = True
classeurCopie.Close
Set classeurCopie = Nothing
Set feuille = Nothing
End Sub
'Procedure principale à lancer
Sub copierFeuille()
'On considère que dans l'exemple, le répertoire où seront mis les fichiers Excel est le même
'que celui du classeur courant
exporterExcel ThisWorkbook.Path & "\", "toto"
End Sub |
Partager