Implémenter les noms de feuilles

Bonjour à tous,

Premier poste sur le forum, je vais essayer d'être le plus concis possible.

Après plusieurs heures de recherches (personnelles, forums, FAQ,...), je suis bloqué sur un bout de code qui est primordial dans le formulaire que je suis en train de créer.

Contexte :

Après identification (feuille 1), l'utilisateur clique sur un bouton pour encoder son projet dans une fiche (nouvelle feuille pré-remplie). Il existe 3 types de fiche, c'est-à-dire 3 feuilles excel avec un contenu différent.

Etant donné que l'utilisateur peut encoder autant de projets qu'il veut, lorsqu'il clique sur le bouton, le code VBA copie la feuille pré-remplie concernée et copie dans une nouvelle feuille préalablement créée grâce au code suivant :

Private Sub CommandButton2_Click()

If ComboBox1.Value = "Général" Then

Sheets("Feuil5").Copy Before:=Sheets("Feuil2")

ActiveSheet.Name = "FP_G"

End If

Exit Sub

"Feuille 5" étant la feuille concernée par le projet de type "général".

Mon soucis réside dans le fait que si l'utilisateur veut encoder un nouveau projet de type "général", il faut un code qui repère l'existence de la première feuille ("FP_G1") et copie à nouveau la feuille 5 en donnant comme nom à la nouvelle feuille "FP_G2" et ainsi de suite.

Je cherche donc un code qui exécuterait quelque chose du genre :

Private Sub CommandButton2_Click()

If ComboBox1.Value = "Général" Then

Dim i As Integer

For i = 1 To 100

nomfeuille = "FP_G" & i

If Sheets("FP_G" & i) existe Then

Sheets("Feuil5").Copy Before:=Sheets("Feuil2")

ActiveSheet.Name = "FP_G" & i + 1

Else : Sheets("Feuil5").Copy Before:=Sheets("Feuil2")

ActiveSheet.Name = "FP_G" & i

End If

Exit For

Next i

End If

End Sub

Je n'y parviens pas, si un d'entre vous a une piste ou peut m'aider de quelconque manière, je le remercie d'avance!

Bonne fin de journée

Bonjour

A tester

Private Sub CommandButton2_Click()
Dim I As Integer

  If ComboBox1.Value = "Général" Then
    Do
      I = I + 1
      If FeuilleExiste("FP_G" & I) = False Then
        Sheets("Feuil5").Copy Before:=Sheets("Feuil2")
        ActiveSheet.Name = "FP_G" & I
        Exit Do
      End If
    Loop
  End If
End Sub

Function FeuilleExiste(Nom As String) As Boolean
  On Error Resume Next
  FeuilleExiste = Sheets(Nom).Name <> ""
  On Error GoTo 0
End Function

Un grand merci Banzai64. Rapide et efficace, que demander de mieux!

Bonne fin de journée

Rechercher des sujets similaires à "implementer noms feuilles"