Renommer feuille avec msg box

bonjour a tous,

dans le fichier joint, je souhaite lorsque je clic sur le bouton :creer un nouveau bulletin de salaire

copier la feuille modèle ; puis la renommer grâce à un menu déroulant ( mois par mois + année) dans une msgbox ( Y/N ) et automatiquement récupérer ce nouveau nom pour l'appliquer à ma cellule E2

merci d'avance pour votre aide.

Bonjour,

Une proposition. La macro est déclenchée avec le bouton vert dans la barre d'accès rapide.

Les mois utilisés disparaissent dans le tableau structuré dans l'onglet Paramètres, ne pas oublier de les reconstituer après essais et de trier le tableau.

bonjour eric,

il ne se passe strictement rien ...

ça na pas l'air de fonctionner.

et il est important de conserver un bouton sur la feuille. ( pas dans menu rapide !)

Il faut choisir le mois en E2.

ah ok.

sur le principe ca fonctionne...mais ...

au niveau de la date je souhaite que ce soit le mois entier et l'année qui soit afficher et quand je modifie le format des dates dans la feuille parametres ca me provoque une erreur a cause des "/" qui sont automatiquement generer avec l'ecriture de la date;

... on peut affecter ton code à un bouton sur la feuille plutot qu'a l'acces rapide ?

... on peut affecter ton code à un bouton sur la feuille plutot qu'a l'acces rapide ?

Oui.

Quant au nom de l'onglet :
Option Explicit

Sub NouvelOnglet()

Dim I As Integer
Dim TabMois As ListObject
Dim LigneMois As ListRow
Dim MoisACreer As String
Dim LibelleMois As Variant

    MoisACreer = Sheets("modele").Range("E2")
    LibelleMois = Join(Split(MoisACreer, "/"), "-")

    If PresenceOnglet(LibelleMois) = True Then
       MsgBox "Onglet déjà créé !", vbCritical
       Exit Sub
    End If

    If MoisACreer <> "" Then
       Sheets("modele").Copy after:=Sheets("modele")
       With ActiveSheet
         .Name = LibelleMois
         .Range("E2").Validation.Delete
       End With

       Set TabMois = Sheets("Paramètres").ListObjects("t_Mois")
       With TabMois
            For I = 1 To .DataBodyRange.Count ' In TabMois.ListRows
                If .DataBodyRange(I) = MoisACreer Then .DataBodyRange(I).Delete
            Next I
       End With
       With Sheets("modele")
            .Range("E2") = TabMois.DataBodyRange(1)
            .Activate
       End With

    End If

End Sub
Rechercher des sujets similaires à "renommer feuille msg box"