Copier feuille si cellule = "janvier"

Résolu
cannellebe -  
 cannellebe -
Bonjour,

Je demande votre aide, car je dois réaliser un projet pour mes études. Il s'agit d'une application Excel, ou le collaborateur rentre ses heures sur une feuille Excel. La feuille se met à jour automatiquement après la sélection du mois.

J'aimerais ajouter un bouton "valider la saisie" en bas de la feuille. Seulement il faudrait que quand la personne clique dessus, le code VBA prenne en compte que si dans la cellule "mois" il est indiqué "janvier", alors cela copie la feuille et la renomme janvier, si c'était écrit février dans cette cellule, alors le code copie la feuille et la renomme cette fois février, etc...

J'ai renommé une cellule (choix_mois), qui contient le nom du mois qui s'actualise automatiquement.
Mon code est le suivant (qui ne fonctionne pas) :

Sub Bouton10_Cliquer()

Dim choix_mois As Worksheet
Set choix_mois = Worksheets("Activite")

Select Case ("choix_mois")
    Case Is = "janvier": ActiveSheet.Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Janvier"
End Select
End Sub


Merci pour votre aide. =)

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

2 réponses

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour,

Tu t'es un peu compliqué et tu as mélangé la feuille et la cellule. Comme ceci cela fonctionne pour tous les mois sans test :
Sub Bouton10_Cliquer()
   ActiveSheet.Copy After:=Sheets(Sheets.Count)
   ActiveSheet.Name = Range("choix_mois").Value
End Sub
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour
peuit être simplement ceci si le nom du mois est en A1
(la feuille se nommera après modification du nom en A1 et touche enter

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells = Range("A1") Then
ActiveSheet.Name = Range("A1").Value
End If
End Sub


ou alors encore plus simple si vous voulez, un bouton, à coller dans un module:

sub RENAME()
ActiveSheet.Name = Range("A1").Value
End Sub

crdlmnt
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Un petit bonjour à toi et bonne fin de dimanche.
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438 > gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention  
 
Salut à toi aussi, c'est vrai qu'on se croise de temps en temps!
Bonne fin de fin de dimanche, avec ce décalage horaire, la fin vient de bonne heure
0
cannellebe
 
Merci pour vos réponses!
0