Création de copie d'une feuille et temporisation

Bonjour à tous !

Je ne suis qu'un début dans le monde du VBA, il m'est donc encore assez compliqué d'effectuer des codes plus complexes.

Mon problème est tel :

Je dois, chaque jour (mon jour début à 7h00 et se termine le lendemain, à 6H59) créer une nouvelle feuille de production qui est dupliqué à partir d'un original.

jusque là, tout va bien. Le soucis est que, si quelqu'un essaie de créer à nouveau la feuille, j'ai une erreur 1004 et une nouvelle feuille est de nouveau créée avec un autre nom.

J'aimerai donc inclure une règle empêchant la création d'une nouvelle feuille si elle existe déjà. De plus, j'aimerai inclure une temporisation pour que mon jour commence bien à 7h00 et non à minuit.

Mais je dois vous avouer être perdu à ce niveau là ...

Merci à tout ceux qui passeront par là et prendrons la peine de m'aider

Bonsoir,

Une proposition :

Sub copiesheet()
    Dim d, sh$, i%
    d = IIf(Time < TimeValue("07:00:00"), Date - 1, Date)
    sh = Format(d, "yyyy-mm-dd")
    For i = 1 To Worksheets.Count
        If Worksheets(i).Name = sh Then
            MsgBox "La feuille du jour existe déjà !", vbInformation, "Erreur création"
            Exit Sub
        End If
    Next i
    Sheets("origine").Copy Before:=Sheets(1)
    With ActiveSheet
        .Name = sh
        .Range("C1").Value = d
    End With
End Sub

je te conseillerais par ailleurs de mettre des noms différents à tes procédures et les regrouper dans un seul module (4 modules avec quasiment rien dedans, pour peu que tu fasses un peu de développement, tu vas être enseveli sous les modules...).

Tu peux également supprimer partout ton instruction End, qui n'a aucune utilité et ne fait qu'occuper une ligne pour rien.

Supprimer également la procédure QueryClose du Userform, on l'utilise en général en testant si l'utilisateur a cliqué sur la croix de fermeture pour annuler et l'obliger à passer par le bouton Annuler (lorsque cela implique des instructions à exécuter en cas d'annulation autres que la fermeture). Ce n'est pas ton cas, donc inutile.

Après, je n'ai pas tout regardé...

Bonne continuation.

Bonsoir MFerrand,

Un grand merci à toi pour ta réponse si rapide et complète ! Merci pour tes différents conseils, j'essaierai de les appliquer par la suite pour modifier tout cela.

Je viens de tester le code à l'instant mais, malheureusement, la feuille que je crée date bel et bien du 15/05 et non du 14/02 (malgré la temporisation à 7h00 ?). Et j'ai toujours une erreur 1004 lorsque "l'utilisateur" essaie de créer une feuille qui existe déjà (nommée origine(2)).

Merci pour ton message, je vais essayer de voir ce que je peux faire (au cas où, avec mes bases )

La date du 15/05 je ne vois pas ? Mais as-tu pris la version rectifiée, j'ai fait une rectif. car j'avais inversé les variables et je n'avais rétabli que partiellement. La version rectifiée fonctionne.


Je dois fatiguer ! J'ai tapé DateValue au lieu de TimeValue ! Je vais le rectifier et j'arrête.

A+

Oups, petite erreur de frappe ! Je dois fatiguer aussi, vu l'heure tardive !

C'est magnifique, le code fonctionne parfaitement ! Encore un grand merci, cela faisait 3 nuits de suite que je me cassais la tête à coder en vain !

Bonne nuit à toi

Rechercher des sujets similaires à "creation copie feuille temporisation"