Bonjour à tous,

Petite question que un bout de macro que je n'arrive pas à exécuter...
Voilà ce que je veux faire. J'ai un bouton de remise à 0 dans un classeur excel qui efface toutes les données contenues dans les 2 onglets du classeur.

Avant d'effacer les données du deuxième onglet, je souhaite l'archiver dans ce même classeur, sous forme d'un onglet renommé à la date du jour.

Problème : si j'exécute plusieurs fois dans la journée la macro de remise à 0, excel n'arrive pas à archiver une 2ème fois l'onglet car le classeur en contient déjà un du même nom.

Pour palier à ce problème, j'ai inséré dans le code des conditions et une petite boucle de traitement :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
    Worksheets("Saisie des chèques").Select
    Worksheets("Saisie des chèques").Copy Before:=Sheets(2)
    Worksheets("Saisie des chèques (2)").Select
    If Worksheets("Saisie des chèques-0" & Jour & "-0" & Mois & "-" & Année & " (1)") Is Nothing Then
        Worksheets("Saisie des chèques (2)").Name = "Saisie des chèques-0" & Jour & "-0" & Mois & "-" & Année & " (1)"
    Else
        For j = 2 To 10
            If Worksheets("Saisie des chèques-0" & Jour & "-0" & Mois & "-" & Année & " (" & j & ")") Is Nothing Then
                Worksheets("Saisie des chèques (2)").Name = "Saisie des chèques-0" & Jour & "-0" & Mois & "-" & Année & " (" & j & ")"
            End If
        Next j
    End If
Et là, 2ème problème : la fonction "Is Nothing" (qui doit me permettre de tester l'existence d'un onglet) ne semble pas fonctionner. En effet, excel me dit que l'onglet "Saisie des chèques-0" & Jour & "-0" & Mois & "-" & Année & " (1)" n'existe pas (l'indice n'appartient pas à la sélection), alors que c'est justement ce que je veux qu'il teste!!!

Auriez-vous une solution?

PS : les variables "jour", "mois" et "année" contiennent respectivement le jour, le mois et l'année courants.

PS2 : j'ai pensé à effectuer une gestion d'erreur, mais je ne vois pas trop comment faire (je débute en VBA)...