Créer une feuille Excel et y copier les données d'une autre

Résolu
titikio Messages postés 3 Statut Membre -  
baladur13 Messages postés 50061 Statut Modérateur -
Bonjour,

Je souhaiterais connaître le code me permettant de créer une nouvelle feuille dans Excel, en la nommant avec le contenu de la cellule B3 de ma feuille d'origine.
La valeur de la cellule B3 sera la combinaison entre la date du jour et un nombre à 4 chiffres.

Ensuite, une fois cette feuille créée, je souhaiterait copier toutes les données de ma feuille d'origine et les coller dans la nouvelle feuille.

Tout ceci dans le but de faire une sauvegarde journalière de l'activité de mes collaborateurs.

6 réponses

eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonjour,

Effectivement, je n'avais pas assez testé, sorry.
Voilà qui doit être mieux.
Sub DupliquerFeuille()
    Dim sh As Worksheet, sh2 As Worksheet
    Set sh = ActiveSheet
    For Each sh2 In Worksheets
        If sh2.Name = [B3] Then
            Sheets([B3].Value).Activate
            If MsgBox("Feuille " & [B3] & " existante. La supprimer ?", vbCritical + vbYesNo) = vbNo Then
                sh.Activate
                Exit Sub
            Else
                Application.DisplayAlerts = False
                Sheets([B3].Value).Delete
                Application.DisplayAlerts = True
                Exit For
            End If
        End If
    Next sh2
    sh.Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = [B3]
    sh.Activate
End Sub 

https://www.cjoint.com/c/CAznFbeGn5n

eric
1
via55 Messages postés 14730 Statut Membre 2 749
 
Bonjour,

Il faut te servir de l'enregistreur de macro

Onglet Developpeur Enregistrer une macro

Tu fais toutes tes manipulations puis tu arrêtes l'enregistrement et tu va voir dans Macros le code (Pas à pas détaillé)

Tu peux ensuite appeler la macro Macros Exécuter

ou créer un bouton qui lancera la macro quand on clique dessus
0
Roberto 1959 Messages postés 25 Statut Membre
 
Bonjour,
Pourquoi ne pas faire une sauvegarde dans un autre classeur, soit en faisant "fichier enregistrer sous" soit en utilisant un petit logiciel de sauvegarde.
Si tu perds ton fichier ou s'il est endommagé tu pourras ainsi le récupérer.
Cordialement
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonsoir,

Agit sur la feuille active :
Sub DupliquerFeuille()
    Dim sh As Worksheet
    Set sh = ActiveSheet
    On Error GoTo suite
    Sheets([B3]).Activate
    On Error GoTo 0
    If MsgBox("Feuille " & [B3] & " existante. La supprimer ?", vbCritical + vbYesNo) = vbNo Then
        Exit Sub
    End If
    Application.DisplayAlerts = False
    Sheets([B3]).Delete
    Application.DisplayAlerts = True
suite:
    On Error GoTo 0
    sh.Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = [B3]
    sh.Activate
End Sub

Si la feuille est existante la macro te l'affiche, te propose de la supprimer pour continuer ou abandonner.
Attention aux caractères interdits dans B3 (/ par exemple).

eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
titikio Messages postés 3 Statut Membre
 
Bonjour à tous,

Eriiic, ta macro duplique bien la feuille active, mais ne la nomme pas avec le contenu de la cellule B3 .
De plus, j'ai un message d'erreur 1004, qui me dit qu'il est impossible de renommer une feuille comme une autre.
0
titikio
 
Bonjour Eriiic,

C'est exactement ça qu'il me fallait.

Merci pour ton aide précieuse.

Titikio
0
baladur13 Messages postés 50061 Statut Modérateur 13 713
 
0