Creer des nouvelles feuilles a partir d'une feuille modele

SueZollars

XLDnaute Nouveau
Bonjour tout le monde,

Bonjour a tous,

Je suis nouvelle ici et j'ai lu quelques discussions mais je n'ai rien trouve qui puisse resoudre mon probleme (ou je n'ai peut etre rien compris).

Je voudrai creer un classeur excel dont la premiere feuille serait le modele des feuilles qui seront generees par la suite. En gros, ce que j'essaye de faire sur cette 1ere feuille c'est :
Rentrer la date dans la cellule B1, la je voudrait qu'une nouvelle feuille se creee automatiquement, avec la date comme nom, et le meme format que la feuille 1

Si l'utilisateur entre une date dont l'onglet existe deja, la macro bug, ce qui est normal. Je voudrai donc que la macro teste d'abord si l'onglet existe deja. Si c'est le cas, je voudrai qu'une Msg Box apparaisse pour prevenir l'utilisateur de changer la date.

J'ai bidouille un test mais il ne fonctionne pas :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Integer

If Intersect(Target, [B1]) Is Nothing Then
    
Else
            
            For i = 1 To Sheets.Count
            
                If [B1] = Sheets(i).Name Then
                    MsgBox "La feuille existe déjà !!!"
                    Exit Sub
                    
                End If
            
            Next

ActiveWorkbook.Sheets(1).Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = [B1]
                
End If

End Sub

Je suis novice en Excel/VBA donc j'espere que j'ai ete claire, je ne suis meme pas sure de me comprendre moi meme...

Merci d'avance.
 
G

Guest

Guest
Re : Creer des nouvelles feuilles a partir d'une feuille modele

Bonjour et bienvenue sur le forum,

Attention aux noms de feuille avec les dates, certains caractères ne sont pas autorisés dans les noms de feuilles notament le '/'

vois si cela convient:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sh As Worksheet
    If Intersect(Target, [B1]) Is Nothing Then
    Else
        On Error Resume Next
        Set sh = Worksheets(Format(Me.[B1], "dd-mm-yyyy"))
        On Error GoTo 0
        If Not sh Is Nothing Then
            MsgBox "La feuille existe déjà !!!"
        Else
            ActiveWorkbook.Sheets(1).Copy After:=Worksheets(Worksheets.Count)
            ActiveSheet.Name = Format(Me.[B1], "dd-mm-yyyy")
        End If
    End If
End Sub

A+
 

SueZollars

XLDnaute Nouveau
Re : Creer des nouvelles feuilles a partir d'une feuille modele

Bonjour Hasco,

Le test fonctionne parfaitement, merci beaucoup !

Par contre, j'aimerai avoir seulement le numero du jour en nom de fenetre. Du coup au lieu de mettre (Format(Me.[B1], "dd-mm-yyyy"), j'ai ecrit (Format(Me.[B1], "dd"). Cependant, la fenetre prend le nom du jour precedent. Par exemple, si je tape 17, la nouvelle fenetre s'appelera 16. Y'a t-il une raison ?

Merci encore.
 
G

Guest

Guest
Re : Creer des nouvelles feuilles a partir d'une feuille modele

Re,

Oui mais si tu copies la feuille, elle est copiée avec son code, ses boutons et autre objets. Alors réfléchis à ce que tu souhaites copier exactement (le tableau uniquement ou plus).

Il est possible d'avoir une feuille cachée (modèle) avec le stricte nécessaire.

A te Lire
 

SueZollars

XLDnaute Nouveau
Re : Creer des nouvelles feuilles a partir d'une feuille modele

Salut Hasco !

J'ai utilisee le test que tu m'avait donnee en changeant 1 ou 2 lignes et ils fonctionne a present ! La macro est recopiee a chaque nouvelle copie de feuille mais en soi, j'ai l'impression que ca ne pose pas de probleme (?).

Merci pour ton aide !
 

Discussions similaires

Réponses
5
Affichages
169

Statistiques des forums

Discussions
312 115
Messages
2 085 448
Membres
102 889
dernier inscrit
monsef JABBOUR