Copier feuille si cellule = "janvier"

Résolu/Fermé
cannellebe - Modifié par crapoulou le 30/10/2016 à 18:16
 cannellebe - 30 oct. 2016 à 21:20
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 714
30 oct. 2016 à 18:26
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 lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421
30 oct. 2016 à 18:30
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 714
30 oct. 2016 à 18:33
Un petit bonjour à toi et bonne fin de dimanche.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 421 > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
30 oct. 2016 à 19:28
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
Merci pour vos réponses!
0