Créer et enregistrer des nouveaux classeurs pour certains onglets d'un CS

Bonjour,

Je suis novice en VBA et je suis à la recherche d'un code pour le problème suivant:

J'ai un fichier source avec plusieurs onglets et je veux créer un fichier par onglet mais que pour certains onglets.

J'ai trouvé un code qui fonctionne pas trop mal :

"Sub CopieOnglets()
Dim ceFichier As Workbook
Set ceFichier = ActiveWorkbook

Dim nouveauFichier As Workbook

For Each fsheet In ceFichier.Worksheets
Workbooks.Add

Set nouveauFichier = ActiveWorkbook
fsheet.Copy Before:=nouveauFichier.Sheets(1)
nouveauFichier.SaveAs Filename:=chemin & "\" & fsheet.Name, FileFormat:=xlNormal

Next

ceFichier.Activate

End Sub"

Cependant j'ai plusieurs soucis :

- Je ne souhaite pas recopier tous les onglets

- J'ai un message d'avertissement :

image image

- Le fichier ne s'enregistre pas mais je sais qu'il n'y a pas de lignes de code pour cette étape. Je voudrais qu'ils s'enregistrent à l'endroit où mon fichier source est car tous les mois, il est enregistrer dans un nouveau dossier.

Pourriez-vous m'aider ?

Je vous en remercie.

Bon week-end à vous

Audrey

Bonjour Audrey,

Quels sont les noms des onglets que tu désires enregistrer dans de nouveaux classeurs ?

Bonsoir Gérard,

Je te mets le fichier il faut que je puisse recopier les onglets :

- Echéances

- T3310CAV2 Néant

- TIDENTVA_Page d'identification

- TIDEN_R1 = paiement TVA

- T3310CA3V1 = CA3 (partie 1)

- T3310CA3V2 = CA3 (partie 2)

- TD3519P1 = Remboursement

Merci

Bonne soirée

Bonjour Audrey,

Je te propose la démarche suivante :

Dans la feuille "Macro" :

  • Création du tableau structuré 'tblOngletsValides' contenant les noms des onglets à recopier : image
  • Affectation du nom 'Exercice' à la cellule contenant l'année d'exercice : image
  • Ajout du mois d'exercice contrôlé par une liste déroulante et affectation du nom 'MOIS' à la cellule : image

De replacer la procédure 'CopieOnglets' avec le code suivant :

Sub CopieOnglets()
    Dim nouveauFichier As Workbook
    Dim oLO As ListObject
    Dim oSheet As Worksheet
    Dim oCell As Range

    Dim sSheetName As String
    Dim sNomNouveauFichier As String
    Dim sPath As String
    Dim sExer As String
    Dim sMois As String

    'On récupère le dossier contenant le classeur actuel
    sPath = ThisWorkbook.Path
    'On récupère l'exercice sous forme texte
    sExer = CStr(ThisWorkbook.Names("Exercice").RefersToRange.Value)
    'On récupère le mois sous forme de texte
    sMois = ThisWorkbook.Names("MOIS").RefersToRange.Value

    'On affecte la variable de tableau structuré 'tblOngletsValides'
    Set oLO = ThisWorkbook.Worksheets("Macro").ListObjects("tblOngletsValides")

    'On boucle sur les valeurs du tableau structuré
    For Each oCell In oLO.DataBodyRange.Cells
        'On récupère le nom de l'onglet à copier
        sSheetName = oCell.Value
        'On affecte le nom du classeur à créer
        sNomNouveauFichier = sExer & "_" & sMois & "_" & sSheetName & ".xlsx"

        'On affecte la variable de worksheet sur l'onglet à recopier
        Set oSheet = ThisWorkbook.Worksheets(sSheetName)
        'On copie l'onglet
        oSheet.Copy
        'On sauvegarde l'onglet copié dans le nouveau classeur
        ActiveWorkbook.SaveAs sPath & "\" & sNomNouveauFichier
        'On affecte la variable sur le nouveau classeur
        Set nouveauFichier = Application.Workbooks(sNomNouveauFichier)
        'On ferme le nouveau classeur
        nouveauFichier.Close
    Next

    'On fait le ménage pour les variables objets
    Set nouveauFichier = Nothing
    Set oSheet = Nothing
    Set oLO = Nothing
End Sub

Je joins mon classeur de test,

Bonjour Gérard

C'est tout bon ;) Je te remercie ;)

Je n'ai pas tout compris le code ;)

Y'a un endroit où je peux trouver des exos et des applications ? Une traduction pour les nuls ??? ;)

Merci en tout cas et bon week-end

Bonsoir Audrey,

Tu trouveras beaucoup de formations sur le WEB (google est notre meilleur ami ;).

Sinon, quelques sites recommandés sur la page https://excellons.org/bienvenue-sur-le-site-de-partage-de-connaissance-excel/des-goodies/sites-utiles/

Bon week end pour toi également,

Rechercher des sujets similaires à "creer enregistrer nouveaux classeurs certains onglets"