Creer-Copier-Renommer une feuille excel

yoyobat

XLDnaute Nouveau
Bonjour à tous,

Je suis nouveau sur le forum et novice en Vba. J'ai décidé de faire un classeur pour mes comptes persos. Je voudrais donc lorsque je mets une croix dans une case:
1- créer et copier automatiquement une nouvelle feuille avec la même présentation que la précédente
2- que mes onglets se renomment automatiquement (Avril 2011,Mai 2011.............)
3- que mes titres se renomment automatiquement comme mes onglets
4- que pour chaque nouvelle feuille créee, une cellue doit faire référence à une autre cellule dans la feuille précédente.

Je ne sais pas si j'ai été assez clair.
Merci pour votre aide

Yoyo
 
Dernière édition:

klin89

XLDnaute Accro
Re : Creer-Copier-Renommer une feuille excel

Bonjour yoyobat,

Une idée avec le fichier de Cbea, le code se situe dans le module de code de la feuille Avril.
https://www.excel-downloads.com/threads/ajout-feuille.94445/

Ci-dessous une autre macro de JP14 qui te permet de créer tes feuilles au coup par coup.
https://www.excel-downloads.com/threads/aide-sur-planning.113162/

Sinon cette macro (sur un exemple d'Hasco) à placer dans un module standard qui te permet de créer 12 feuilles mensuelles en y affichant les dates en colonne A.

Code:
Sub Creer_Feuilles_Mensuelles_2011()
    Dim i As Integer
    Dim j As Integer
    Dim annee As Integer
  
    'Choix del'année
    annee = 2011
    For i = 1 To 12
        ActiveWorkbook.Worksheets.Add after:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = MonthName(i)
        j = 1
        Do
           ActiveSheet.Cells(j , 1) = DateSerial(annee, i, j)
           j = j + 1
        Loop While Month(DateSerial(annee, i, j)) = i
    Next i
End Sub
Sans plus d'explications et sans fichier, je te laisse poursuivre.

Klin89
 
Dernière édition:

yoyobat

XLDnaute Nouveau
Re : Creer-Copier-Renommer une feuille excel

Bonjour à tous,

plus spécialement à klink89,
Tout d'abord merci pour tes réponses, j'ai essayé mais cela ne marche pas donc je te mets en pièce jointe mon fichier zip si tu pouvais regarder c'est tout expliquer dedans.

Merci à toi pour ton aide

Yoyobat
 

Pièces jointes

  • Attachment.zip
    17.4 KB · Affichages: 105

yoyobat

XLDnaute Nouveau
Re : Creer-Copier-Renommer une feuille excel

Cela ne marche pas car les codes ne prennent pas en compte le fait que je veuille que des cellules de la nouvelle page créee fassent référence à des cellules dans la feuille précédente. J'essaye de corriger cette partie en attendant ton aide.

Merci encore.

Yoyobat
 
G

Guest

Guest
Re : Creer-Copier-Renommer une feuille excel

Bonjour,

Dans le fichier joint j'ai remplacer la date en C2 "MARS 2011" par sa valeur en date. Plus facile à gérer pour VBA.
Ajout d'un bouton de boîte à outil formulaire pour créer un nouveau mois.
Ce bouton est détruit quand la macro est lancée pour être recréé sur la feuille du nouveau mois.

Le solde est récupérer par formule.

A+
 

yoyobat

XLDnaute Nouveau
Re : Creer-Copier-Renommer une feuille excel

Bonjour Hasco,

Merci c'est super mais (il y a un petit mais) lorsque je crée une nouvelle feuille avec le bouton, cela me copie aussi mes données du mois précédent. Je m'explique lorsque je met dans une colonne une certaine somme, que je copie la feuille avec le bouton, cette somme apparait dans la nouvelle feuille. Serait-il possible que cela ne se fasse pas?

Merci en tout cas pour ton aide.

Yoyobat
 
G

Guest

Guest
Re : Creer-Copier-Renommer une feuille excel

Re bonjour,

Il va falloir que tu apprennes un minimum de vba, car je n'assurerai pas tout le temps le sav. Nous ne sommes pas sur un marché à la macro. A toi d'adapter.

Code:
Sub NouveauMois()
    Dim NouveauMois As Date
    Dim CelluleSolde As Range
    'Travailler sur la feuille active
    With ActiveSheet
        'S'il n'y a pas de date en C2 on sort
        If Not IsDate(.Range("C2")) Then Exit Sub
        'Date du nouveau mois
        NouveauMois = DateSerial(Year(.Range("C2")), Month(.Range("C2")) + 1, 1)
        'Cellule du solde du mois actuel
        Set CelluleSolde = .Range("D40")
        'Copier la feuille en fin de classeur
        .Copy after:=Sheets(Sheets.Count)
        'Détruire le bouton "cmdNouveauMois"
        .Shapes("cmdNouveauMois").Delete
    End With
    'On a changé de feuille active on travail sur celle du nouveau mois
    With ActiveSheet
        'Mettre le nom de la feuille
        .Name = Application.Proper(Format(NouveauMois, "mmmm yyyy"))
        'Mettre la date dans la cellule C2
        .Range("C2") = NouveauMois
        'Mettre la formule de liaison avec le mois précédent
        .Range("D4").FormulaR1C1 = "='" & CelluleSolde.Parent.Name & "'!" & CelluleSolde.Address(True, True, xlR1C1)
        'Vider les anciennes valeurs
        .Range("$C$6:$I$26,$C$28:$I$39").ClearContents
        'Nommer le bouton pour que la macro le retrouve la prochaine fois
        With .Shapes(.Shapes.Count)
            .Name = "cmdNouveauMois"
            'Attribuer cette macro au bouton
            .OnAction = "'" & ThisWorkbook.Name & "'!NouveauMois"
        End With
    End With
End Sub

A+
 

terpick

XLDnaute Occasionnel
Re : Creer-Copier-Renommer une feuille excel

Bonsoir, Hasco, yoyobat, le Forum!

Hasco, j'ai appliqué votre macro pour mon fichier. Le seul problème, c'est que la suppression de vieux boutons ne marche pas.

.Shapes("cmdArchiver").Delete se met toujours en défaut.

Pourquoi?

Je l'ai retiré de fichier, vu qu'il met la macro en vrac.

Merci à vous

A+
 

Pièces jointes

  • nouvelle feuille.xls
    72 KB · Affichages: 157
  • nouvelle feuille.xls
    72 KB · Affichages: 189
  • nouvelle feuille.xls
    72 KB · Affichages: 199
G

Guest

Guest
Re : Creer-Copier-Renommer une feuille excel

Bonjour,

.Shapes("cmdArchiver").Delete se met toujours en défaut.

C'est à dire?????

Pour que ton bouton soit supprimé, il faut le nommer. Sur la feuille de départ, tu le sélectionne et à gauche le la barre de formule dans la zone ou s'affiche les adresses de cellule, tu tapes "cmdArchiver", et tu valides par Entrée.

A+
 

terpick

XLDnaute Occasionnel
Re : Creer-Copier-Renommer une feuille excel

J'ai quand même un petit hic

Lors de l'archivage

OnAction = "'" & ThisWorkbook.Name & "'!NouveauMois"

se met en défaut si le courseur est sur la cellule vide,

sinon, tout fonctionne :)
 

Discussions similaires

Statistiques des forums

Discussions
312 400
Messages
2 088 090
Membres
103 713
dernier inscrit
Raïhane