macro pour faire 31 onglets

heho13

XLDnaute Occasionnel
bonsoir,

je cherche a faire un tableau avec les 31 jours du mois (au plus).
pour éviter de faire copier coller 30 fois, quelqu'un pourrait me faire une petite macro ?

merci
 

jeanpierre

Nous a quitté
Repose en paix
Re : macro pour faire 31 onglets

Bonsoir heho13, 13GIBI59,

Tu peux faire Outils/Macro/Nouvelle macro, et Ok au nom proposé sinon tu en mets un autre...

Ensuite Edition/Déplacer ou créer une copie, tu coches Créer une copie et toujours avec Outils/Macro tu cliques sur arrêter l'enregistrement.

Ta première macro est faite.

Alt F11 pour aller sous VBE, Affichage/Explorateur de projet (si necessaire). Tu développe le petit plus sur le nom de ton classeur et tu ouvres le module.

Tu trouves ceci :

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 14/11/2008 par '
'
Sheets("Feuil1").Copy Before:=Sheets(1)
End Sub

Il te suffit d'installer une boucle telle que :

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 14/11/2008 par '
'
For i = 2 To 31
Sheets("Feuil1").Copy Before:=Sheets(i)
Next
End Sub

et ta première feuille est recopiée à l'identique.

Bon essai.

Jean-Pierre
 

Staple1600

XLDnaute Barbatruc
Re : macro pour faire 31 onglets

Bonsoir



Une autre façon de faire (si j'ai bien compris)
Code:
Sub cree_un_onglet_jour()
Dim nj As Long
Dim i As Byte
Mois = InputBox("Saisir numéro du mois (1 à 12)")
ladate = DateValue("1/" & Mois & "/" & Year(Date))
nj = Day(DateAdd("d", -1, DateAdd("m", 1, DateSerial(Year(Date), Mois, 1))))
For i = 1 To nj
ActiveWorkbook.Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = _
Format(DateValue(i & "/" & Format(ladate, "mm/yy")), "dd-mm-yy")
Next i
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : macro pour faire 31 onglets

Re



Après relecture du post
Pour copie un onglet existant selon le nombre de jour du mois renseigné

Code:
Sub copie_un_onglet_jour()
Dim nj As Long
Dim i As Byte
Mois = InputBox("Saisir numéro du mois (1 à 12)")
ladate = DateValue("1/" & Mois & "/" & Year(Date))
nj = Day(DateAdd("d", -1, DateAdd("m", 1, DateSerial(Year(Date), Mois, 1))))
Application.ScreenUpdating = False
For i = 1 To nj
Sheets("Feuil1").Copy After:=Sheets(i)
ActiveSheet.Name = _
Format(DateValue(i & "/" & Format(ladate, "mm/yy")), "dd-mm-yy")
Next i
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 218
Messages
2 086 366
Membres
103 197
dernier inscrit
sandrine.lacaussade@orang