Créations Fichiers
Résolu/Fermé
Benoit_Lyon
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
-
Modifié le 14 mai 2017 à 23:04
Benoit_Lyon Messages postés 98 Date d'inscription vendredi 20 janvier 2017 Statut Membre Dernière intervention 13 décembre 2017 - 15 mai 2017 à 15:06
Benoit_Lyon Messages postés 98 Date d'inscription vendredi 20 janvier 2017 Statut Membre Dernière intervention 13 décembre 2017 - 15 mai 2017 à 15:06
A voir également:
- Créations Fichiers
- Wetransfer gratuit fichiers lourd - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Explorateur de fichiers - Guide
- Fichiers bin - Guide
- Fichiers epub - Guide
1 réponse
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 711
15 mai 2017 à 09:02
15 mai 2017 à 09:02
Bonjour,
Seulement, la macro s'arrete au moment de supprimer les onglets dans le fichier 3
Non, si vous ne mettez
Seulement, la macro s'arrete au moment de supprimer les onglets dans le fichier 3
Non, si vous ne mettez
Application.DisplayAlerts = Falseen commentaire vous avez une erreur. Votre code corrige (une facon de faire)
Option Explicit Sub Création_Fichiers() ' Export Fichier Dim memPath As String 'Mémorise l'emplacement du fichier ouvert Dim Path As String 'Défini la variable Path Dim nom As String Dim nom_1 As String 'Défini la variable nom Dim nom_2 As String Dim nom_3 As String ActiveWorkbook.Save 'sauvegarde le classeur en cours memPath = ThisWorkbook.FullName 'Mémorise l'emplacement du fichier Application.DisplayAlerts = False 'Enlève les messages d'alertes Excel Application.ScreenUpdating = False Path = ActiveWorkbook.Path & "\" nom_1 = "Mon fichier 1" & ".xlsm" 'Enregistre le fichier nom_2 = "Mon fichier 2" & ".xlsm" nom_3 = "Mon fichier 3" & ".xlsm" ActiveWorkbook.SaveAs Filename:=Path & nom_1 'Enregistre le fichier dans le dossier d'origine ActiveWorkbook.SaveAs Filename:=Path & nom_2 ActiveWorkbook.SaveAs Filename:=Path & nom_3 Workbooks.Open Filename:=Path & nom_1 With Workbooks(nom_1) .Sheets(Array("Liste Complete", "Cachée Tri", "Liste Triable 2", "Liste Triable 3")).Delete 'Supprime les onglets non pertinents .Close True End With Workbooks.Open Filename:=Path & nom_2 With Workbooks(nom_2) .Sheets(Array("Liste Complete", "Cachée Tri", "Liste Triable 1", "Liste Triable 3")).Delete 'Supprime les onglets non pertinents .Close True End With 'le classeur actif n'est plus celui d'origine mais: nom_3 With ActiveWorkbook .Sheets(Array("Liste Complete", "Cachée Tri", "Liste Triable 2", "Liste Triable 1")).Delete 'Supprime les onglets non pertinents .Save End With Application.DisplayAlerts = True 'Remet les alertes Excel Application.ScreenUpdating = True Application.Workbooks.Open memPath 'Réouvre l'emplacement du fichier qui a été mémorisé Workbooks(nom_3).Close False 'Fermer ce classeur (la copie) End Sub
15 mai 2017 à 10:02
Je vous remercie pour cette réponse qui fonctionne à merveille.
Maintenant par curiosité personnel, et afin que je puisse intégrer cette technique, pouvez-vous m'expliquer la différence entre nos deux méthodes ?
Est-ce que c'est juste parce que j'avais oublié que le fichier 3 était du coup le dernier ouvert, ou la méthode With, End With a changé quelque chose ? (Largement plus esthétique, j'en convient).
Merci à vous.
Benoit
15 mai 2017 à 12:10
Est-ce que c'est juste parce que j'avais oublié que le fichier 3 était du coup le dernier ouvert,
Oui, c'est l'unique raison
ou la méthode With, End With a changé quelque chose ? (Largement plus esthétique, j'en convient).
Ce n'est pas de l'esthetisme, le code s'execute plus rapidement. Ici, ce n'est pas capital, mais dans beaucoup d'autres cas c'est interessant
15 mai 2017 à 15:06