Copier onglet + renommer avec nom de mois

Résolu/Fermé
benzi Messages postés 66 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 28 juillet 2015 - 28 oct. 2011 à 00:03
benzi Messages postés 66 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 28 juillet 2015 - 28 oct. 2011 à 19:37
Bonjour,

Je cherche à copier un onglet nommer "Octobre 11" dans lequel se trouve un tableau avec des formules dont certaines sont protégées dans un autre onglet (en gardant format et formules) et en le renommant "Novembre 11" et ainsi de suite chaque mois.

Est-ce faisable en vba?

Merci de vos réponses.

Dan

3 réponses

remousse Messages postés 299 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 20 novembre 2014 6
28 oct. 2011 à 08:53
Cela fait longtemps que je n'ai pas fait de VBA mais tu peux essayer cela.

ActiveWorkbook.Names("NomCellule").Delete
Range("F10").Select
ActiveWorkbook.Names.Add Name:="AutreNomCellule", RefersToR1C1:= _"=Cellule cible"


Essaie déjà sur une cellule et après du boucle pour le faire sur plusieurs.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
28 oct. 2011 à 12:56
Essaies ce code :
Public Sub AjoutFeuille()
Dim nom As String

  nom = "1 " & ActiveSheet.Name
  nom = Application.WorksheetFunction.Text(CDate(nom) + 31, "[$-040C] mmmm yy")
  nom = Application.WorksheetFunction.Proper(nom)
  ActiveSheet.Copy after:=ActiveSheet
  ActiveSheet.Name = nom
  
End Sub
0
benzi Messages postés 66 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 28 juillet 2015 1
28 oct. 2011 à 19:37
Bonjour à vous deux,

Merci pour ces réponses, cela fonctionne.
J'ai apporté une modif pour le besoin, voici le code, cela peur servir.

Public Sub CréeOnglet_Click()
Dim nom As String

  nom = "1 " & ActiveSheet.Name
  nom = Application.WorksheetFunction.Text(CDate(nom) + 31, "[$-040C] mmmm yy")
  nom = Application.WorksheetFunction.Proper(nom)
  ActiveSheet.Copy after:=ActiveSheet
  
ActiveSheet.Range("B4:B34").Value = ""
ActiveSheet.Range("C4:C34").Value = ""
ActiveSheet.Range("D4:D34").Value = ""
ActiveSheet.Range("E4:E34").Value = ""
ActiveSheet.Range("H4:H34").Value = ""
ActiveSheet.Range("K4:K34").Value = ""

ActiveSheet.Range("B4").Select

  ActiveSheet.Name = nom
  
End Sub


Cordialement
Dan
0