Création d'une feuille "Date du jour" avec contrôle qu'elle n'existe pas

Bonjour,

J'ai créé un fichier pour facilement journaliser des données et les copier dans une nouvelle feuille nommée selon la date du jour.

Sub CreateCopyTab()

Columns("A:G").Select

Selection.Copy

Sheets.Add After:=Worksheets(Worksheets.Count)

ActiveSheet.Paste

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Range("A1").Select

ActiveSheet.Name = Date

End Sub

Cependant, si une feuille a déjà été créée aujourd'hui, mon code plante me disant que la référence existe déjà et me fait une feuille "Sheet2".

Je n'ai pas réussi à construire un code conditionnel qui procéderait ainsi :

1. Contrôle si une feuille existe déjà avec comme nom la date du jour

2. Si oui : MsgBox pour avertir que la feuille existe déjà --> fin du script

3. Si non, poursuivre avec le code ci-dessus pour créer la feuille et la nommer selon la date du jour.

Si quelqu'un a une idée à suggérer, je suis partant.

D'avance grand merci et bonne fin de semaine !

Bonjour,

Essaie ainsi :

Sub CreateCopyTab()
Dim ws As Worksheet, strDate As String
    strDate = Format(Date, "yyyy-mm-dd")
    On Error Resume Next
    Set ws = Worksheets(strDate)
    On Error GoTo 0
    If Not ws Is Nothing Then
        MsgBox "La feuille " & strDate & " existe d?j? !...", 64, "Copie"
        Exit Sub
    Else
        Cells(1).CurrentRegion.Copy
        Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = strDate
        Cells(1).PasteSpecial Paste:=xlPasteValues
        Application.CutCopyMode = 0
    End If
End Sub

Bonjour,

Essaie cette macro

Sub CreateCopyTab()
Dim Feuille As Worksheet
Dim nom As String
Columns("A:G").Select
Selection.Copy
Sheets.Add After:=Worksheets(Worksheets.Count)
nom = ActiveSheet.Name
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Range("A1").Select
'verif feuille existe
    For Each Feuille In Worksheets
        If Feuille.Name = Day(Date) & Month(Date) & Year(Date) Then
            msg = MsgBox("La feuille existe déjà", vbCritical)
            Exit Sub
        Else
        End If
    Next Feuille
Sheets(nom).Name = Day(Date) & Month(Date) & Year(Date)
End Sub

Tu peux aussi utiliser la fonction Now() car elle donne l'heure en plus (à moins que tu ne génère 2 feuilles à la même seconde )

Je te joins un fichier

Cordialement

Bonjour Jean-Eric et besoin_d_aide

J'ai pu tester vos solutions et ça fonctionne comme je le souhaite. C'est parfait ! me reste plus qu'à ajuster dans le détail.

Merci beaucoup et bon weekend !

Rechercher des sujets similaires à "creation feuille date jour controle existe pas"