Boucle création de N feuilles si elles n'existent pas déjà

Bonsoir,

Je voudrais ajouter à une macro qui créé par boucle (for/next) N nouvelles feuilles à partir d'un nom (commun à toutes les feuilles) et d'un nombre (le numéro de la feuille), un test pour vérifier si la nouvelle feuille (Nom + numéro) n'existe pas déjà.

La macro qui génère N nouvelles feuilles fonctionne.

La fonction qui teste si le nom de la nouvelle feuille existerait déjà, fonctionne également, mais je n'ai pas réussi à réunir les deux macros, une erreur Next sans For apparait,

Dim I As Byte
Dim Nombre As Integer
Dim Titre As String
Dim NouveauNom As String
Titre = Range("S12").Value
Nombre = Range("S13").Value
Application.ScreenUpdating = False
For I = 1 To Nombre
  Sheets("Master_episode").Copy After:=Sheets(Sheets.Count)
  NouveauNom = Titre & I
  If FExist(NouveauNom) Then
  MsgBox "Cette feuille existe déjà"
  Exit Sub

  Else
  Sheets(Sheets.Count).Name = NouveauNom   
  Range("J1") = I
  Range("B1") = Titre
Next I
Application.ScreenUpdating = True
End Sub

Function FExist(NomF As String) As Boolean ' test si la feuille existe
Application.ScreenUpdating = False
On Error Resume Next
FExist = Not Sheets(NomF) Is Nothing
Application.ScreenUpdating = True
End Function

Je vous remercie pour votre aide.

Dul

Bonsoir,

il manque un end if

 Dim I As Byte
    Dim Nombre As Integer
    Dim Titre As String
    Dim NouveauNom As String
    Titre = Range("S12").Value
    Nombre = Range("S13").Value
    Application.ScreenUpdating = False
    For I = 1 To Nombre
        Sheets("Master_episode").Copy After:=Sheets(Sheets.Count)
        NouveauNom = Titre & I
        If FExist(NouveauNom) Then
            MsgBox "Cette feuille existe déjà"
            Exit Sub

        Else
            Sheets(Sheets.Count).Name = NouveauNom
            Range("J1") = I
            Range("B1") = Titre
        End If
    Next I
    Application.ScreenUpdating = True

Bonsoir, Salut h2so4 !

Typique de ce genre d'erreur ! Il est bien signalé un morceau d'instruction manquant et il en manque effectivement un, mais 2 fois sur 3 au moins ce n'est pas celui signalé dans le message qui manque !

A savoir pour ne pas se laisser induire en erreur dans la recherche d'erreur !

Cordialement.

Ben oui...

J'ai déplacé "Sheets("Master_episode").Copy After:=Sheets(Sheets.Count)" sous le Else et ça fonctionne.

Merci à tous les deux.

[code]Dim I As Byte

Dim Nombre As Integer

Dim Titre As String

Dim NouveauNom As String

Titre = Range("S12").Value

Nombre = Range("S13").Value

Application.ScreenUpdating = False

For I = 1 To Nombre

NouveauNom = Titre & I

If FExist(NouveauNom) Then

MsgBox "Cette feuille existe déjà"

Exit Sub

Else

Application.ScreenUpdating = False

Sheets("Master_episode").Copy After:=Sheets(Sheets.Count)

Sheets(Sheets.Count).Name = NouveauNom

NouveauNom = Titre & I

Range("J1") = I

Range("B1") = Titre

End If

Next I

Application.ScreenUpdating = True

End Sub/code]

Rechercher des sujets similaires à "boucle creation feuilles existent pas deja"