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 FunctionUn grand merci Banzai64. Rapide et efficace, que demander de mieux!
Bonne fin de journée