XL 2016 Copier un onglet dans un nouveau classeur excel et l'enregistrer

_l_ours

XLDnaute Nouveau
Bonjour à tous, :cool:

j'ai créé le fichier en PJ. je cherche depuis plusieurs jours et j'ai fait plusieurs manip, mais je ne m'en sors pas.

Je souhaite modifier la macro en PJ pour que suite à l'appuie sur le bouton de l'onglet "Bouton", une fois la macro réalisée :
  1. le résultat obtenu dans l'onglet "export ETO URGENT" soit copié dans un nouveau fichier excel et enregistré sur le bureau de l'ordinateur avec le nom "ETO urgent"
  2. le résultat obtenu dans l'onglet "export ETO AUTRES" soit copié dans un nouveau fichier excel et enregistré sur le bureau de l'ordinateur avec le nom "ETO autres"
  3. le fichier initial ETO - mise en forme soit fermé sans sauvegarder
Merci d'avance pour votre aide et bon week end à tous :)
 

Pièces jointes

  • ETO - mise en forme.xlsm
    127.5 KB · Affichages: 2
Solution
Bonsoir,
Un essai en PJ avec cette macro inspirée de ce lien.
VB:
Sub EnregistreFeuille()
Sheets("export ETO URGENT").Copy
With CreateObject("WScript.Shell")
   ActiveWorkbook.SaveAs .SpecialFolders("Desktop") & "\ETO urgent.xlsx"
   ActiveWorkbook.Close False
End With
Sheets("export ETO AUTRES").Copy
With CreateObject("WScript.Shell")
   ActiveWorkbook.SaveAs .SpecialFolders("Desktop") & "\ETO autres.xlsx"
   ActiveWorkbook.Close False
End With
ActiveWorkbook.Close False
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Un essai en PJ avec cette macro inspirée de ce lien.
VB:
Sub EnregistreFeuille()
Sheets("export ETO URGENT").Copy
With CreateObject("WScript.Shell")
   ActiveWorkbook.SaveAs .SpecialFolders("Desktop") & "\ETO urgent.xlsx"
   ActiveWorkbook.Close False
End With
Sheets("export ETO AUTRES").Copy
With CreateObject("WScript.Shell")
   ActiveWorkbook.SaveAs .SpecialFolders("Desktop") & "\ETO autres.xlsx"
   ActiveWorkbook.Close False
End With
ActiveWorkbook.Close False
End Sub
 

Pièces jointes

  • ETO - mise en forme.xlsm
    124.9 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Je pense que la première partie de votre code peut être remplacé par :
VB:
Sub Bouton6_Cliquer()
For Each wSht In Worksheets
    If wSht.Name <> "BOUTON" Then
wSht.Select
Chaine = Array("Catégorie client", "Type GT", "Centre", "Commune", "Nom de rue", "Base opérationnelle", "Référence Tâche", "Famille de diffus", "Libellé sous type Affaire", "Code nature d'intervention", _
                "Code objet", "C5 / P4", "Type de compteur sur place après intervention", "PDS Coupé", "PDS Limité", "Date création tâche", "Statut Tâche", "Nature de la Tâche", "Famille Tâche", _
                "Type Objet Maitre", "Type d'agence", "Libellé GT Père", "Libellé GT", "Libellé Liste de Gestion", "Libellé Poste de Travail", "Communicant", "PDS hors-service", "Date fin tâche", _
                "Date d'effet souhaitée Fournisseur", "Date Echéance", "Date modification tâche", "Nb jours traitement", "Tâche en retard", "Nb jours de retard", "Priorité Tâche", "Nb transferts tâche", _
                "Domaine Tâche", "Référence Type Rôle Métier", "Libellé Type Rôle Métier", "Nom Acteur", "Prénom Acteur", "Référence Affaire", "Référence Externe", "Date création affaire", "Date fin affaire", _
                "Type Affaire", "Libellé Statut Affaire", "Rôle Tâche", "Référence externe dern tent ", "Date eff souhait dern tent ", "Statut dernière tentative", "Date émission dern tentative", _
                "Mode de réal dern tent ", "Date réalisation dern tent ", "Résultat techn der tent ", "Date réception dern tent ", "Date retour dern tent ", "Date réal prév dern tent ", "Niveau SLA dern tent", _
                "Code rejet échec", "Tache à traiter", "Tâche urgente", "Tâche à faire", "Tâche créée aujourd'hui", "Tâche à traiter aujourd'hui", "Tâche cloturée aujourd'hui", "Tâche est en retard", _
                "Tâche domaine prestations", "Tâche domaine interventions", "Aff est relance en cours", "Aff avec anomalie auto", "Aff a echoué rejeu TO", "Aff a echoué rejeu TO relance auto", _
                "Durée relance echec rejeu TO dépassé", "ETO pas relancé auto ou durée dépassée", "Prise en charge > 1 jour", "Tâche traitement ETO", "Accès compteur", "Tâche bloquante", _
                "Nombre d'anomalies", "Commentaires anomalies non variabilisés", , "Domaine de prestation")
' Supprimer toutes les colonnes de l'export dont nous n'avons pas besoin
Set MR = Range("A1:EE1")
For Each cell In MR
    Présent = 0
    For N = 0 To UBound(Chaine)
        If cell.Value = Chaine(N) Then
            Présent = 1
            Exit For
        End If
    Next N
    If Présent = 1 Then cell.EntireColumn.Delete
Next cell
' insérer une colonne pour la mise en forme '
... puis la suite comme avant
 

Discussions similaires

Statistiques des forums

Discussions
313 315
Messages
2 097 070
Membres
106 828
dernier inscrit
xof