Dupliquer feuille Excel VBA dans un autre classeur

Bonjour,

J'ai un classeur avec plein d'onglet dedans et chaque mois je dois envoyer le 1er onglet avec des petites modifications.

A l'heur actuel je le fais manuellement mais c'est un peu long

Je souhaiterais une macro VBA qui serais dons mon fichier et qui dupliquerai le 1er onglet nommé "CAP5" dans un autre classeur Excel qu’on nommera « à envoyer » et qui dégroupe toutes les colonnes puis qui supprime toutes les colonnes après V et qui met le texte en blanc de la 1ère ligne

J'ai la macro suivante que j'ai trouvé mais cela bloque sur cette ligne

"Worksheets("CAP5").Copy Before:=Workbooks(2).Worksheets(1)"

Voici le code ci-dessous

Sub ModifySheetCAP5()
    ' Vérifier si la feuille "CAP5" existe
    If Worksheets("CAP5") Is Nothing Then
        MsgBox "La feuille 'CAP5' n'existe pas dans le classeur.", vbCritical
        Exit Sub
    End If

    ' Créer un nouveau classeur
    Workbooks.Add

    ' Copier la feuille "CAP5" dans le nouveau classeur
    Worksheets("CAP5").Copy Before:=Workbooks(2).Worksheets(1)

    ' Dégrouper toutes les colonnes
    Workbooks(2).Worksheets("CAP5").Columns.Ungroup

    ' Supprimer les colonnes après la colonne V
    Workbooks(2).Worksheets("CAP5").Range("W1:IV1").EntireColumn.Delete

    ' Mettre le texte en blanc de la première ligne
    Workbooks(2).Worksheets("CAP5").Range("A1:V1").Font.Color = vbWhite
End Sub

Si quelq'un à un meilleur code ou qui serait régler le problème au miens cela serait cool

Merci d'avance pour votre aide

Bonjour,

Lorsque tu créé un nouveau classeur avec Workbooks.Add, le nouveau classeur devient le classeur actif. Donc, si tu veux copier la feuille “CAP5” dans le nouveau classeur, vous pouvez utiliser ActiveWorkbook au lieu de Workbooks(2).

Voici le code modifié

Sub DUPLI_CAP5()
    Dim NewWorkbook As Workbook

    ' Vérifier si la feuille "CAP5" existe
    If Worksheets("CAP5") Is Nothing Then
        MsgBox "La feuille 'CAP5' n'existe pas dans le classeur.", vbCritical
        Exit Sub
    End If

    ' Créer un nouveau classeur
    Set NewWorkbook = Workbooks.Add

    ' Copier la feuille "CAP5" dans le nouveau classeur
    ThisWorkbook.Worksheets("CAP5").Copy Before:=NewWorkbook.Worksheets(1)

    ' Dégrouper toutes les colonnes
    NewWorkbook.Worksheets("CAP5").Columns.Ungroup

    ' Supprimer les colonnes après la colonne V
    NewWorkbook.Worksheets("CAP5").Range("W1:IV1").EntireColumn.Delete

    ' Mettre le texte en blanc de la première ligne
    NewWorkbook.Worksheets("CAP5").Range("A1:V1").Font.Color = vbWhite
End Sub

Bonjour,

Merci cela fonctionne parfaitement bien, merci encore

Cordialement,

Bonjour à vous...

Je débute avec VBA et je m'entraine avec quelques sujets.

J'ai d’ailleurs de sérieux pbs pour comprendre la gestions des graphiques, je cherche d'abord à comprendre.

ici ça marche j'ai pu recréer l’exemple par contre il faut que les colonnes soient visibles à l'écran sinon ce n'est pas copié....

Bugg de ma part ??

15copie-degroup.xlsm (20.65 Ko)

Bonjour,

Non moi c'est pareil cela dégroupe mais c'est masqué, aprés je le fait en manuel

Je ne sais pas le faire par VBA

Cordialement,

Rechercher des sujets similaires à "dupliquer feuille vba classeur"