a partir d'un CommandButton7 qui va allez chercher une feuille bien précise qu'on pose la question ' quelle année? ' ex 2005
si la feuille existe l'ouvrir et se mettre en A1 sinon un message ' cette feuille n'existe pas créez là '
Private Sub CommandButton1_Click()
Dim feuilles As String
Dim ws As Object
feuilles = InputBox('Quelle feuille voulez-vous activer ?')
If feuilles = '' Then Exit Sub
For Each ws In Worksheets
If ws.Name = feuilles Then
Sheets(ws.Name).Activate
Exit Sub
End If
Next ws
MsgBox 'Cette feuille n'existe pas.'
End Sub
Ma première réponse, sur le nouveau xld, je suis ému.
Sub NouvelleFeuille()
Dim Nom_Fichier
Debut:
Nom_Fichier = Application.InputBox(prompt:='*Quelle année?*')
If Nom_Fichier = 'Faux' Then Exit Sub
If Nom_Fichier = '' Then
MsgBox 'Entrer un nom'
GoTo Debut
Else
For Each ws In Worksheets
If ws.Name = Nom_Fichier Then
Sheets(Nom_Fichier).Select
Range('A1').Select
GoTo Debut
End If
Next
Sheets('Model').Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Nom_Fichier
Range('A1').Select
End If
End Sub
une proposition par un gestionnaire d'erreur, attention ce code va te gérer toutes les erreurs possibles dans la macro, pas seulement l'erreur 9
Code:
Private Sub CommandButton2_Click()
Dim TheYear As String
On Error GoTo Message
TheYear = Format(Date, 'YYYY')
Worksheets(TheYear).Activate
Exit Sub
Message:
MsgBox 'Cette feuille n'existe pas'
End Sub
Tom suis désolé j'ai un bug avec ton code !!
celui d'Hervé fonctionne bien mais je viens de me rendre compte que j'ai pas bien formulé ma question dans le sens ou je ne suis pas sur une année civile mais année qui débute en mars jusque Février
en clair ma saison 2005 commence en 03/2005 et fini fin février 2006
est ce que le code que vous m'avez donné est adaptable a ce critère ?
L'erreur viens surement du fait que tu doit adapter une ligne...celle du classeur model.
Pour que ca ne bogue pas tu doit y faire une feuil et la nommé Model et il te copie cette feuil ou change la ligne Sheets('Model').Copy After:=Sheets(Sheets.Count)
pour Sheets.Add
Cette macro voit tout simplement si ta feuil existe si oui elle la sélectionne en A1 sinon elle fait une copie de Model et la nomme du nom que tu cherchais
je pense que tu as un Goto Debut à la place d'un exit sub
Sub NouvelleFeuille()
Dim Nom_Fichier
Debut:
Nom_Fichier = Application.InputBox(prompt:='*Quelle année?*')
If Nom_Fichier = 'Faux' Then Exit Sub
If Nom_Fichier = '' Then
MsgBox 'Entrer un nom'
GoTo Debut
Else
For Each ws In Worksheets
If ws.Name = Nom_Fichier Then
Sheets(Nom_Fichier).Select
Range('A1').Select
GoTo Debut ' ICI à mon avis c'est Exit Sub
End If
Next
Sheets('Model').Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Nom_Fichier
Range('A1').Select
End If
End Sub