XL 2016 modifier code pour tache ennuyeuse

fenec

XLDnaute Impliqué
Bonjour le forum,

Il y 8 ans Victor21 m’avait aidé pour une tache ennuyeuse qui consistais à imprimer une même feuille mais avec la date de chaque jour du mois
Exemple :
Une feuille au 01-03-2012
Une feuille au 02-03-2012
Une feuille au 03-03-2012
Etc…
Et ce tous les mois de l’année

Aujourd’hui je souhaiterais modifier ce code afin de ne plus imprimer 31 feuilles par mois
Je voudrais les recopier cette fois et les renommer, pour la copie j’ai supprimé l’impression et mis la copie à la place mais ou je coince c’est pour renommer les feuilles qui auraient comme nom la date
Vous joint le code

VB:
Private Sub CommandButton1_Click()
Dim i As Date
 Dim j As Date
 Dim x As Long
 
i = InputBox("Date de début")
 j = InputBox("Date de fin")
 
For x = i To j
 Range("A2").Value = CDate(x)
 Worksheets("Modèle").Copy after:=Sheets(Worksheets.Count)
 'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
 Next x
End Sub

Cordialement,
Philippe.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Si j'ai bien compris
VB:
Private Sub CommandButton1_Click()
Dim i&, j&, x&
i = CLng(CDate(InputBox("Date de début", "Choix", Date)))
j = CLng(CDate(InputBox("Date de fin")))
Application.ScreenUpdating = False
For x = i To j
Worksheets("Modèle").Copy after:=Sheets(Worksheets.Count)
ActiveSheet.Range("A2").Value = CDate(x)
ActiveSheet.Name = Format(CDate(x), "dd-mm-yyyy")
Next x
End Sub
 

fenec

XLDnaute Impliqué
Bonsoir le forum,Staple1600
Viens de tester et tout fonctionne comme je souhaite, je suis même parvenu à modifier le nom du fichier lors de la création d'onglet en mettant ceci:

VB:
ActiveSheet.Name = "Planning du " & Format(CDate(x), " dd-mm-yyyy")
Dites moi si c'est la bonne méthode?

J'ai quand même une petite question:
Lors de la création d'onglet je ne souhaite pas recopier le bouton, j'ai essayé de rajouter:
Code:
ActiveSheet.Shapes.delete
Hélas ca ne fonctionne pas.

Cordialement ,
Philippe.
 

Staple1600

XLDnaute Barbatruc
Re

A tester sur une copie de votre fichier
VB:
Private Sub CommandButton1_Click()
Dim i&, j&, x&
i = CLng(CDate(InputBox("Date de début", "Choix", Date)))
j = CLng(CDate(InputBox("Date de fin")))
Application.ScreenUpdating = False
For x = i To j
Worksheets("Modèle").Copy after:=Sheets(Worksheets.Count)
ActiveSheet.Range("A2").Value = CDate(x)
ActiveSheet.Name = Format(CDate(x), """Planning du ""dd-mm-yyyy")
ActiveSheet.DrawingObjects.Delete
Next x
End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Une version à ma sauce
(avec une seule InputBox et sans le petit blocage du clic sur Annuler)
VB:
Private Sub CommandButton1_Click()
pj = CDate("1-" & Month(Date))
dj = Format(Application.EoMonth(pj, 0), """ ""dd/mm/yyyy")
Dates = InputBox("Saisir date début et date de fin" & Chr(13) & "(séparée par un espace)", "Création Planning", pj & dj)
Select Case True
Case StrPtr(Dates) = 0
Exit Sub
Case Len(Dates) = 0
Exit Sub
Case Else
Application.ScreenUpdating = False
i = CDate(Split(Dates)(0))
j = CDate(Split(Dates)(1))
For x = i To j
Worksheets("Modèle").Copy after:=Sheets(Worksheets.Count)
    With ActiveSheet
        .Range("A2").Value = CDate(x)
        .Name = Format(x, """Planning du ""dd-mm-yyyy")
        .DrawingObjects.Delete
    End With
Next
End Select
End Sub
NB: Evidemment si la saisie dans l'InputBox ne respecte pas les contraintes, des soucis apparaîtront.
A l'utilisateur final d'être vigilant. ;)
 

fenec

XLDnaute Impliqué
Bonjour le forum, Staple1600
Viens de tester votre code il est top et je l'ai même compris :D mais pas tout j'avoue comme:
VB:
EoMonth
et
Code:
Split(Dates)(0))

Je vais le garder sous le coude vu la rébellion😱 de l'informatique de certains, je crains que le téléphone ne fasse que sonner. Il est plus simple pour moi de leur d'appuyer sur fin et de recommencer avec la première macro

Un grand merci pour votre aide

Cordialement,
Philippe.
 

fenec

XLDnaute Impliqué
Bonsoir le forum, Staple1600
Simplement pour vous dire qu'après explication votre solution poste 10 à été un succès et adopter
Encore merci pour votre aide
Cordialement,
Philippe.

PS: comment modifie t'on le tire pour marquer résolu?
 

Discussions similaires

Réponses
7
Affichages
540

Statistiques des forums

Discussions
314 653
Messages
2 111 578
Membres
111 205
dernier inscrit
Adrien25