Bonjour,
J'ai un fichier excel comportant environ 20 onglets. Chacun étant le suivi budgétaire propre à un responsable et chacun d'eux devant avoir accès à son fichier sans voir les autres.
Je souhaiterais donc séparer automatiquement tous les onglets et les enregistrer dans le répertoire d'origine avec comme nom celui de l'onglet.
J'ai essayé avec le code suivant :
Private Sub CommandButton1_Click()
Dim CheminRep, Ws As Worksheet
For Each Ws In Worksheets ' Collection des feuilles du classeur
If Ws.Name <> "Accueil" Then ' Non enregistrement de la feuille Accueil
CheminRep = ActiveWorkbook.Path & "\" ' ou chemin du répertoire du classeur actif
Application.DisplayAlerts = False ' Désactivation des messages d'alerte
Ws.Copy ' Création d'un classeur avec une feuille
ActiveWorkbook.SaveAs Filename:=CheminRep & Ws.Name & ".xls" ' Enregistrement avec le nom de la feuille
Application.DisplayAlerts = True
ActiveWorkbook.Close ' Fermeture du classeur
End If
Next Ws
End Sub
ça semble avoir fonctionné pour le 1er onglet mais j'ai ensuite une "erreur d'éxécution1004" avec la partie "Ws.Copy ' Création d'un classeur avec une feuille" surlignée en jaune.
Quelqu'un peut il m'aider à comprendre ce qui ne va pas avec cette macro...ou m'indiquer un autre moyen ?
Je vous remercie par avance.
M
J'ai un fichier excel comportant environ 20 onglets. Chacun étant le suivi budgétaire propre à un responsable et chacun d'eux devant avoir accès à son fichier sans voir les autres.
Je souhaiterais donc séparer automatiquement tous les onglets et les enregistrer dans le répertoire d'origine avec comme nom celui de l'onglet.
J'ai essayé avec le code suivant :
Private Sub CommandButton1_Click()
Dim CheminRep, Ws As Worksheet
For Each Ws In Worksheets ' Collection des feuilles du classeur
If Ws.Name <> "Accueil" Then ' Non enregistrement de la feuille Accueil
CheminRep = ActiveWorkbook.Path & "\" ' ou chemin du répertoire du classeur actif
Application.DisplayAlerts = False ' Désactivation des messages d'alerte
Ws.Copy ' Création d'un classeur avec une feuille
ActiveWorkbook.SaveAs Filename:=CheminRep & Ws.Name & ".xls" ' Enregistrement avec le nom de la feuille
Application.DisplayAlerts = True
ActiveWorkbook.Close ' Fermeture du classeur
End If
Next Ws
End Sub
ça semble avoir fonctionné pour le 1er onglet mais j'ai ensuite une "erreur d'éxécution1004" avec la partie "Ws.Copy ' Création d'un classeur avec une feuille" surlignée en jaune.
Quelqu'un peut il m'aider à comprendre ce qui ne va pas avec cette macro...ou m'indiquer un autre moyen ?
Je vous remercie par avance.
M