Macro sous excel
allanmarla
Messages postés
10
Statut
Membre
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
Voilà je me lance dans excel et les macros, j'aimerai grace à une macro (bouton qui se trouve dans feuille 1 par exemple) créer une nouvelle feuille et surtout que cette feuille soit renommée automatique par le mois suivant.
Par exemple: Fin mai 2011, je clique sur le bouton de la macro et le systeme me crée automatiquement une nouvelle feuille avec comme nom Juin2011.
J'ai réussi à créer une feuille normale mais je n'arrive pas à le faire avec le nom désiré.
Merci de votre aide
PS: le début du code VB ci dessous
Sub Rajout()
'
' Rajout Macro
'
'
Range("A1").Select
Sheets("Feuil2").Select
Sheets.Add
Range("A1").Select
ActiveSheet.Paste
End Sub
Voilà je me lance dans excel et les macros, j'aimerai grace à une macro (bouton qui se trouve dans feuille 1 par exemple) créer une nouvelle feuille et surtout que cette feuille soit renommée automatique par le mois suivant.
Par exemple: Fin mai 2011, je clique sur le bouton de la macro et le systeme me crée automatiquement une nouvelle feuille avec comme nom Juin2011.
J'ai réussi à créer une feuille normale mais je n'arrive pas à le faire avec le nom désiré.
Merci de votre aide
PS: le début du code VB ci dessous
Sub Rajout()
'
' Rajout Macro
'
'
Range("A1").Select
Sheets("Feuil2").Select
Sheets.Add
Range("A1").Select
ActiveSheet.Paste
End Sub
A voir également:
- Macro sous excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
8 réponses
bonjour
je n'ai pas bien compris ta question, est ce que tu veux créer une nouvelle feuille (vide) ou créer une copie d'une feuille existante
Pour créer une nouvelle feuille vide
Pour créer une copie de la feuille active en fin de classeur
bonne suite
je n'ai pas bien compris ta question, est ce que tu veux créer une nouvelle feuille (vide) ou créer une copie d'une feuille existante
Pour créer une nouvelle feuille vide
Dim mois mois = MonthName(Month(Date) + 1) Sheets.Add ActiveSheet.Name = mois
Pour créer une copie de la feuille active en fin de classeur
Dim mois ActiveSheet.Copy After:=Sheets(Sheets.Count) mois = MonthName(Month(Date) + 1) ActiveSheet.Name = mois
bonne suite
Merci beaucoup pour le script, cela fonctionne bien. Il permet de rajouter une nouvelle feuille à la fin du classeur avec le nom du mois suivant.
PS: Je voulais créer une copie d'une feuille active, pour répondre à votre question.
J'ai utilisé ce script
Dim mois
ActiveSheet.Copy After:=Sheets(Sheets.Count)
mois = MonthName(Month(Date) + 1)
ActiveSheet.Name = mois
Autre questions:
I) Pour rajouter l'année à coté du mois (par exemple juin2011), j'ai essayé cela
Dim mois
ActiveSheet.Copy After:=Sheets(Sheets.Count)
mois = MonthName(Month(Date) + 1)
mois = YearName(Year(Date)+1)
ActiveSheet.Name = mois
Malheureusement ce a ne fonctionne pas, connaissez vous la solution ?
2) Avec le script que vous m'avez donné, la feuille est rajoutée à la fin du classeur , est il possible de la rajouter entre 2 feuilles déjà existantes ?
Merci de votre aide.
PS: Je voulais créer une copie d'une feuille active, pour répondre à votre question.
J'ai utilisé ce script
Dim mois
ActiveSheet.Copy After:=Sheets(Sheets.Count)
mois = MonthName(Month(Date) + 1)
ActiveSheet.Name = mois
Autre questions:
I) Pour rajouter l'année à coté du mois (par exemple juin2011), j'ai essayé cela
Dim mois
ActiveSheet.Copy After:=Sheets(Sheets.Count)
mois = MonthName(Month(Date) + 1)
mois = YearName(Year(Date)+1)
ActiveSheet.Name = mois
Malheureusement ce a ne fonctionne pas, connaissez vous la solution ?
2) Avec le script que vous m'avez donné, la feuille est rajoutée à la fin du classeur , est il possible de la rajouter entre 2 feuilles déjà existantes ?
Merci de votre aide.
Dim mois ActiveSheet.Copy After:=Sheets(Sheets.Count) mois = MonthName(Month(Date) + 1) mois = YearName(Year(Date)+1) ActiveSheet.Name = mois
Il faut que tu comprenne ce que tu écris sinon ça n'a aucun intérêt.
mois = MonthName(Month(Date) + 1)
tu mets dans mois la valeur du mois suivant (si tu es en mai, mois aura comme valeur juin, on est bien d'accord?)
Donc maintenant explique moi ce que fait
mois = YearName(Year(Date)+1)
Concernant le mois j'ai compris le fonctionnement.
année(et non pas mois, dsl erreur de ma part) = YearName ( Year(Date)+1).
Ce script va rajouter automatiquement une année +1 à chaque fois que je clique sur la macro en prenant en compte la date de l'ordi.
Si je clique le 31 mais 2011, ma nouvelle feuille sera nommée Juin2012.
Dans le script, si je suis logique il faut rajouter la variable
année = YearName(Year(Date)) sans le +1
(en fin d'année je rajouterai +1 pour passer de décembre2011 à Janvier 2012.
Ensuite, je pense qu'il faut travailler avec l'ActiveSheet.Name = mois, et lui notifié l'année un truc du genre ActiveSheet.Name = mois+année.
C'est pas simple les débuts, mais comme vous le dites il faut bien comprendre comment cela fonctionne.
Merci de votre aide
année(et non pas mois, dsl erreur de ma part) = YearName ( Year(Date)+1).
Ce script va rajouter automatiquement une année +1 à chaque fois que je clique sur la macro en prenant en compte la date de l'ordi.
Si je clique le 31 mais 2011, ma nouvelle feuille sera nommée Juin2012.
Dans le script, si je suis logique il faut rajouter la variable
année = YearName(Year(Date)) sans le +1
(en fin d'année je rajouterai +1 pour passer de décembre2011 à Janvier 2012.
Ensuite, je pense qu'il faut travailler avec l'ActiveSheet.Name = mois, et lui notifié l'année un truc du genre ActiveSheet.Name = mois+année.
C'est pas simple les débuts, mais comme vous le dites il faut bien comprendre comment cela fonctionne.
Merci de votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voila, tu as compris ou était ton erreur :)
Maintenant pour mettre le nom, perso je préfère passer par une troisième variable dans laquelle j'associerais les 2 autres même si ce que tu proposes est bon
Bon courage pour la suite
Maintenant pour mettre le nom, perso je préfère passer par une troisième variable dans laquelle j'associerais les 2 autres même si ce que tu proposes est bon
Bon courage pour la suite
Je viens d'essayer mon nouveau script
I)
Dim mois
ActiveSheet.Copy After:=Sheets(Sheets.Count)
mois = MonthName(Month(Date) + 1)
année = Year(Year(Date))
ActiveSheet.Name = mois + année
Il me donne un debug sur ActiveSheet.Name = mois + année, je pense que pour afficher mois et année je dois passer par un autre ActiveSheet.Name. Avez vous une idée ?
II)
J'ai essayé ce script pour vérifier la bonne date, lorsque je clique sur la macro il me crée bien une nouvelle feuille mais avec le nom 1903 ??,
Script utilisé.
Dim mois
ActiveSheet.Copy After:=Sheets(Sheets.Count)
année = Year(Year(Date))
ActiveSheet.Name = année
Il y a 2 erreurs à corriger
1) concernant l'active sheet I)
2) Pour afficher la bonne année II)
Ensuite j'essayerai d'insérer la nouvelle feuille (Juin2011) entre 2 feuilles existantes.
Merci de votre aide
I)
Dim mois
ActiveSheet.Copy After:=Sheets(Sheets.Count)
mois = MonthName(Month(Date) + 1)
année = Year(Year(Date))
ActiveSheet.Name = mois + année
Il me donne un debug sur ActiveSheet.Name = mois + année, je pense que pour afficher mois et année je dois passer par un autre ActiveSheet.Name. Avez vous une idée ?
II)
J'ai essayé ce script pour vérifier la bonne date, lorsque je clique sur la macro il me crée bien une nouvelle feuille mais avec le nom 1903 ??,
Script utilisé.
Dim mois
ActiveSheet.Copy After:=Sheets(Sheets.Count)
année = Year(Year(Date))
ActiveSheet.Name = année
Il y a 2 erreurs à corriger
1) concernant l'active sheet I)
2) Pour afficher la bonne année II)
Ensuite j'essayerai d'insérer la nouvelle feuille (Juin2011) entre 2 feuilles existantes.
Merci de votre aide
re
- pour nom de feuille = mois+année
Dim mois, annee
ActiveSheet.Copy After:=Sheets(Sheets.Count)
mois = MonthName(Month(Date) + 1)
annee = Year(Date)
ActiveSheet.Name = mois & " " & annee
- pour inserer la nouvelle feuille avant la feuille 3 (par exemple)
ActiveSheet.Copy before:=Sheets(3)
- pour inserer la nouvelle feuille avant la feuille "FF" (par exemple)
ActiveSheet.Copy before:=Sheets("FF")
bon week end
- pour nom de feuille = mois+année
Dim mois, annee
ActiveSheet.Copy After:=Sheets(Sheets.Count)
mois = MonthName(Month(Date) + 1)
annee = Year(Date)
ActiveSheet.Name = mois & " " & annee
- pour inserer la nouvelle feuille avant la feuille 3 (par exemple)
ActiveSheet.Copy before:=Sheets(3)
- pour inserer la nouvelle feuille avant la feuille "FF" (par exemple)
ActiveSheet.Copy before:=Sheets("FF")
bon week end