Macro sous excel
Fermé
allanmarla
Messages postés
10
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
28 juillet 2011
-
26 mai 2011 à 15:28
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 - 27 mai 2011 à 12:01
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 - 27 mai 2011 à 12:01
A voir également:
- Macro sous excel
- Liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule excel - Guide
- Macro word - Guide
- Si et excel - Guide
8 réponses
ccm81
Messages postés
10855
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
29 avril 2024
2 404
Modifié par ccm81 le 26/05/2011 à 17:14
Modifié par ccm81 le 26/05/2011 à 17:14
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
allanmarla
Messages postés
10
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
28 juillet 2011
27 mai 2011 à 10:01
27 mai 2011 à 10:01
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.
sirefalas
Messages postés
219
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
12 février 2014
8
27 mai 2011 à 10:09
27 mai 2011 à 10:09
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)
allanmarla
Messages postés
10
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
28 juillet 2011
27 mai 2011 à 10:39
27 mai 2011 à 10:39
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
sirefalas
Messages postés
219
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
12 février 2014
8
27 mai 2011 à 10:43
27 mai 2011 à 10:43
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
allanmarla
Messages postés
10
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
28 juillet 2011
27 mai 2011 à 11:28
27 mai 2011 à 11:28
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
sirefalas
Messages postés
219
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
12 février 2014
8
27 mai 2011 à 11:36
27 mai 2011 à 11:36
1) erreur relativement simple, tu essayes de mettre un chiffre et une chaine de caractères en même temps, donc incompatibilité de type. Je suis en train de chercher la fonction qui fait passer un integer en string
2) tu as un "year en trop écrit juste:
2) tu as un "year en trop écrit juste:
année = Year(Date)
sirefalas
Messages postés
219
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
12 février 2014
8
27 mai 2011 à 11:40
27 mai 2011 à 11:40
1) trouvé, regarde dans l'aide la fonction Cstr() je te laisse te débrouiller avec, elle est relativement simple. Demande si jamais tu n'arrives pas à t'en servir
allanmarla
Messages postés
10
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
28 juillet 2011
27 mai 2011 à 11:47
27 mai 2011 à 11:47
Ok merci pour cela. Je vais continuer à bosser sur cela ce week end.
ccm81
Messages postés
10855
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
29 avril 2024
2 404
27 mai 2011 à 12:01
27 mai 2011 à 12:01
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