Copier onglet + renommer avec nom de mois

Résolu
benzi Messages postés 84 Statut Membre -  
benzi Messages postés 84 Statut Membre -
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

  1. remousse Messages postés 299 Date d'inscription   Statut Membre Dernière intervention   6
     
    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
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    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
  3. benzi Messages postés 84 Statut Membre 1
     
    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