Bonjour,
J'ai créé un fichier qui ne peut contenir que 12 feuilles (12 mois d'une année). Au delà, il faut créer un nouveau fichier.
J'ai réussi à adapter du code pour faire une copie de mon fichier actif :
Seulement, j'aurais aimé qu'il n'y ait qu'une feuille dans le nouveau fichier et que ce soit la première feuille de mon fichier à partir duquel je lance la macro.
Ca me parait bien compliqué. Dans le cas où ça le serait effectivement trop, je peux toujours supprimer les feuilles 2 à 12 mais là encore, j'ai un problème : à chaque feuille supprimé, j'ai un message d'avertissement. Il me semble avoir vu quelque part "application.setwarning = false" mais je ne m'en souviens plus et je ne trouve pas sur le Net.
Pour résumer, l'idéal serait la première solution : ne sauvegarder que la première feuille du classeur actif.
Sinon je prendrais la deuxième solution (suppression des feuilles sans message d'alerte).
Merci d'avance et bonne journée
J'ai créé un fichier qui ne peut contenir que 12 feuilles (12 mois d'une année). Au delà, il faut créer un nouveau fichier.
J'ai réussi à adapter du code pour faire une copie de mon fichier actif :
Code:
Dim monfichier As String
'Si ton fichier contient 12 feuilles
If Sheets.Count = 12 Then
'Message
Select Case MsgBox("Il y a déjà 12 feuilles," & vbCr & vbCr & _
"vous ne pouvez pas en créer d'avanage !" & vbCr & vbCr & _
"Voulez-vous créer un autre fichier ?", vbYesNo, "DESOLE !!")
Case vbYes
'Si tu réponds OUI
ActiveWorkbook.Save
'ça c'est pour ne pas perdre le travail effectué sous ton fichier _
d'origine avec le nom d'origine, ça paraît idiot mais je l'avais pas mis au début.
monfichier = "C:\Documents and Settings\passeport\Bureau\" _
& Sheets(1).Range("K1").Value
'ça c'est pour définir le nom de ta copie, ici elle prendra le nom de ta cellule A1 feuille 1 + jour - mois - année
If Dir(monfichier & ".xls") <> "" Then
MsgBox ("Un fichier de ce nom existe déjà, veuillez le supprimer/déplacer avant nouvelle copie")
Else
monfichier = monfichier & ".xls"
ActiveWorkbook.SaveAs Filename:=monfichier, FileFormat:=xlNormal, Password:="", _
WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Sheets(1).Range("L1") = ActiveWorkbook.Sheets(1).Range("L1") + 1
Workbooks.Open Filename:="C:\Documents and Settings\passeport\Bureau\Barbara.xls"
'ça c'est si tu veux réouvrir ton fichier d'origine pour faire de nouvelles copies
MsgBox ("Fichier créé dans C:\Documents and Settings\passeport\Bureau\")
End If
Case vbNo
'Si tu réponds NON
Exit Sub
'La procédure est quittée
End Select
Else
Seulement, j'aurais aimé qu'il n'y ait qu'une feuille dans le nouveau fichier et que ce soit la première feuille de mon fichier à partir duquel je lance la macro.
Ca me parait bien compliqué. Dans le cas où ça le serait effectivement trop, je peux toujours supprimer les feuilles 2 à 12 mais là encore, j'ai un problème : à chaque feuille supprimé, j'ai un message d'avertissement. Il me semble avoir vu quelque part "application.setwarning = false" mais je ne m'en souviens plus et je ne trouve pas sur le Net.
Pour résumer, l'idéal serait la première solution : ne sauvegarder que la première feuille du classeur actif.
Sinon je prendrais la deuxième solution (suppression des feuilles sans message d'alerte).
Merci d'avance et bonne journée