Macro copie d'un classeur
Macrodeb
Messages postés
9
Statut
Membre
-
Patrice33740 Messages postés 8930 Statut Membre -
Patrice33740 Messages postés 8930 Statut Membre -
Bonjour à toute la communauté de "commentcamarche",
Je viens vers vous car j'ai différentes questions suite à la réalisation d'une macro.
Je souhaite créer une macro qui me permette de créer une copie d'un classeur entier.
Dans ce nouveau classeur, je souhaiterais que toutes les feuilles soient affichées (des feuilles sont masquées dans le docuement d'origine) et que la protection soit retirée.
Voici le début de code :
Pour l'instant je n'ai pas encore pris en compte la partie retrait de la protection car j'ai un message d'erreur avec ce code
"Erreur d'exécution '424' Objet requis" pour la ligne monfichier.Worksheets("Archivage Matériel" ).unhide
Une autre question : Est-il possible de créer le nouveau fichier avec l'ensemble des feuilles rendues visibles sans qu'il s'ouvre nécessairement ?
Merci d'avance pour votre aide.
Je viens vers vous car j'ai différentes questions suite à la réalisation d'une macro.
Je souhaite créer une macro qui me permette de créer une copie d'un classeur entier.
Dans ce nouveau classeur, je souhaiterais que toutes les feuilles soient affichées (des feuilles sont masquées dans le docuement d'origine) et que la protection soit retirée.
Voici le début de code :
Sub Extraction()
jour = Day(Now) & "_" & Month(Now) & "_" & Year(Now) '// pour que le nom de la copie, intègre la date (jour - mois - année)
monfichier = "C:\Documents and Settings\GTmacrodeb\Mes documents\Suivi Location" & " " & jour
If Dir(monfichier & ".xls" ) <> "" Then
MsgBox ("Un fichier de ce nom existe déjà, veuillez le supprimer/déplacer avant nouvelle copie" )
Else
monfichier = monfichier & ".xls"
ActiveWorkbook.SaveAs Filename:= _
monfichier, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
MsgBox ("Fichier créé dans Mes Documents" )
monfichier.Worksheets("Archivage Matériel" ).unhide
End If
End Sub
Pour l'instant je n'ai pas encore pris en compte la partie retrait de la protection car j'ai un message d'erreur avec ce code
"Erreur d'exécution '424' Objet requis" pour la ligne monfichier.Worksheets("Archivage Matériel" ).unhide
Une autre question : Est-il possible de créer le nouveau fichier avec l'ensemble des feuilles rendues visibles sans qu'il s'ouvre nécessairement ?
Merci d'avance pour votre aide.
A voir également:
- Macro copie d'un classeur
- Copie cachée - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
- Copie disque dur - Guide
2 réponses
Bonjour,
L'absence de déclaration des variables est la source de nombreux problèmes et de manque de carté dans le code, c'est pourquoi il est conseillé d'utiliser systématiquement au début de chaque module :
L'absence de déclaration des variables est la source de nombreux problèmes et de manque de carté dans le code, c'est pourquoi il est conseillé d'utiliser systématiquement au début de chaque module :
Option ExplicitDans ton cas, la ligne :
monfichier = monfichier & ".xls"entraine la déclaration implicite de la variable monfichier comme chaine de caractère, d'où l'erreur lorsque tu tentes d'utiliser cette même variable comme un objet workbook à la ligne :
monfichier.Worksheets("Archivage Matériel" ).unhide
Patrice33740
Messages postés
8930
Statut
Membre
1 782
Outre le fait que la syntaxe .unhide est incorrecte, "Erreur d'exécution '424' Objet requis" vient du fait que monfichier (il faudrait utiliser une autre variable car celle-ci est déjà utilisée) n'a pas été affecté par une instruction du type :
Bonsoir
pour excel 2003, ça s'écrierait (a priori):
Par ailleurs ce code intervenant après l'enregistrement du classeur, quelle action pourra-t-il avoir ?
Bonne soirée ( nuit ? ou journée?)
monfichier.Worksheets("Archivage Matériel" ).unhide
pour excel 2003, ça s'écrierait (a priori):
monfichier.Worksheets("Archivage Matériel" ).Visible = True
Par ailleurs ce code intervenant après l'enregistrement du classeur, quelle action pourra-t-il avoir ?
Bonne soirée ( nuit ? ou journée?)