Verifier si une feuille existe deja

nougitch

XLDnaute Occasionnel
Bonjour,

J'utilise un code trouve sur le forum, me permettant de verifier si une feuille existe deja.

Code:
Sub test()
Dim sh As Worksheet
On Error Resume Next
Set sh = Sheets("Feuil1")
    If Err.Number <> 0 Then Sheets.Add.Name = "Feuil1"
On Error GoTo 0
End Sub

Or, quand je lance ma macro, j'ai une nouvelle feuille qui se cree, portant le nom "Sheet(i)" et ainsi de suite : "Sheet(i+1)", "Sheet(i+2)" etc.

Merci par avance pour votre aide.
Cdt,
 

nougitch

XLDnaute Occasionnel
Re : Verifier si une feuille existe deja

Bonjour CHTI, PIERROT,

J'utilise Excel 2003, en anglais.
Voila ce que j'ai dans mon code :

Code:
Sub macExpiries()

    Application.ScreenUpdating = False

    On Error Resume Next

    Dim MySheet                 As Worksheet:           Set MySheet = Sheets("Expiries")
    Dim MyReferenceCell         As Range:               MyReferenceCell = Empty
    Dim MyReferenceRow          As Long:                MyReferenceRow = 0
    Dim MyCell                  As Range:               MyCell = Empty
    Dim MyDictionary            As Object:              Set MyDictionary = CreateObject("Scripting.Dictionary")
    Dim MyKeys                  As Variant:             MyKeys = Empty
    Dim MyItems                 As Variant:             MyItems = Empty
    Dim MyTable()               As Variant:             MyTable = Empty
    Dim i                       As Long:                i = 0
    Dim j                       As Long:                j = 0
    Dim k                       As Long:                k = 1
    Dim MyReferenceColumn       As Long:                MyReferenceColumn = 0
    Dim MaxRow                  As Long:                MaxRow = 0

    If Err <> 0 Then Sheets.Add.Name = "Expiries"
    On Error GoTo 0

    Etc...

J'ai essaye de deplacer certaines choses mais soit j'ai le probleme evoque, soit ma feuille ne se cree pas.

Merci beaucoup pour votre aide.
 

GIBI

XLDnaute Impliqué
Re : Verifier si une feuille existe deja

Salut à tous,

en fait le code erreur n'est pas positionné par Set sh = Sheets("Feuil1") et comme toi les feuilles se crées avec un incrément
par contre avec


On Error Resume Next
Sheets("Feuil1").Activate ' activer la feuille à créer

Le err.number = 9 si la feuille n'existe pas

GIBI
 

ChTi160

XLDnaute Barbatruc
Re : Verifier si une feuille existe deja

Salut nougitch
Bonjour le Fil
Bonjour le Forum
le problème vient du fait que sous cette forme ton code génère de nombreuses erreurs (notamment avec les mises Empty de tes différentes variables)
la procédure ainsi nettoyée fonctionne
Code:
Sub TestV2()
Application.ScreenUpdating = False
On Error Resume Next
Dim MySheet As Worksheet: Set MySheet = Sheets("Expiries")
Dim MyReferenceCell As Range
Dim MyReferenceRow As Long: MyReferenceRow = 0
Dim MyCell As Range
Dim MyDictionary As Object
 Set MyDictionary = CreateObject("Scripting.Dictionary")
Dim MyKeys As Variant
Dim MyItems As Variant
Dim MyTable() As Variant
Dim i As Long: i = 0
Dim j As Long: j = 0
Dim k As Long: k = 1
Dim MyReferenceColumn As Long: MyReferenceColumn = 0
Dim MaxRow As Long: MaxRow = 0

If Err <> 0 Then Sheets.Add.Name = "Expiries"
On Error GoTo 0
'Etc...
End Sub
Bonne fin de Journée
 

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 196
Membres
103 153
dernier inscrit
SamirN