Un petit coup de main saveas

Résolu
Looping38 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -  
Looping38 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je bloque sur une fonction d'enregistrer-sous d'une feuille de mon classeur maître.
Je souhaite par macro extraire une feuille de mon classeur avec la possibilité à l'utilisateur de choisir la destination en proposant le nom de fichier.
De plus, lorsque on répond "oui" à "souhaitez-vous ouvrir le dossier, il y ait un focus sur le fichier en question.
j'ai tâtonné en rédigeant cette macro, mais elle ne fait pas tout à fait le job.

Sub modele_liste_clients()
Application.ScreenUpdating = False
' modele_liste_clients Macro
'
Dim ret As Integer
'
Sheets("Modele Liste Clients ").Select
Worksheets("Modele Liste Clients ").Unprotect Password:="toto"
Sheets("Modele Liste Clients ").Select
chemin = ActiveWorkbook.Path
ActiveSheet.Copy
With ActiveWorkbook
.Title = ActiveSheet.Name
.Subject = ActiveSheet.Name
.Application.GetSaveAsFilename ActiveSheet.Name

ActiveWorkbook.Close

Application.ScreenUpdating = True
End With
ThisWorkbook.Activate
Sheets("Données Client").Select

MsgBox ("Souhaitez-vous ouvrir le dossier"), vbYesNo
If ret = vbNo Then
Exit Sub
Else
Dim rep As String
rep = chemin
Shell "explorer.exe " & rep, 1

End If
End Sub


Si quelqu'un pouvait m'aider?
Merci d'avance

Configuration: Windows / Chrome 70.0.3538.102

4 réponses

  1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Que voulez-vous faire: ????
    Copier une feuille vers un classeur existant ou simplement les données extraites de la feuille "Modele Liste Clients" ….?????
    0
  2. Looping38 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
     
    Bonjour le Pingou et merci pour votre attention à ma demande.
    J'ai créé une feuille dans mon classeur qui servira de modèle pour importer des données vers ce même classeur.
    En utilisant la macro " Modèle_liste_clients", je souhaite que l'utilisateur puisse l'enregistrer sur son disque dur (en créant un nouveau classeur excel) à l'endroit qu'il souhaite, de préférence à la racine du fichier maître, l'enrichisse des données (colonnes avec titre) qu'il détient, puis j’aurais une autre macro qui appellera cette feuille pour enserrer les données là où nécessaire.
    Le fichier ainsi crée devra se nommer "modèle liste client.xls" par défaut, mais il pourra le nommé comme il veut, et la destination par défaut sera à la racine du fichier maître.
    je suis dispo pour plus de précision.
    Merci d'avance
    0
  3. Looping38 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
     
    J'en profite pour également savoir comment rédiger un emplacement de destination du type "l'emplacement du fichier actuel (ActiveWorkbook.Path)\sous dossier "DEVIS"\"le nom du fichier proposé.xls"

    Merci d'avance
    Martin
    0
  4. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Introduire ces lignes de code à l’endroit souhaité :

    'chemin classeur maitre
    chemin = ActiveWorkbook.Path
    'non nouveau classeur
    nomcla = "modèle liste client.xls"
    ' copie de la feuille
    Sheets("Modele Liste Clients").Copy
    'enregistrement nouveau classeur
    ActiveWorkbook.SaveAs Filename:= _
    chemin & "\" & nomcla, FileFormat:= _
    xlOpenXMLWorkbook, CreateBackup:=False


    0
    1. Looping38 Messages postés 91 Date d'inscription   Statut Membre Dernière intervention   1
       
      Merci Pingou, ça marche super.
      ci-dessous ma transposition :
      Sub modele_liste_clients()

      ' ************* Lance la génération d'un fichier .xls
      ' comme modèle d'importation de données clients ************
      Application.ScreenUpdating = False
      Application.Calculation = xlCalculationManual
      Dim chemin As String
      Dim nomcla As String
      Dim fichier As String

      'chemin classeur maitre
      chemin = ActiveWorkbook.Path
      'non nouveau classeur
      nomcla = "modèle liste client.xls"
      ' copie de la feuille
      Sheets("Modele Liste Clients ").Copy
      'enregistrement nouveau classeur
      ActiveWorkbook.SaveAs Filename:= _
      chemin & "\" & nomcla, FileFormat:= _
      xlOpenXMLWorkbook, CreateBackup:=False
      ActiveWorkbook.Close

      '
      MsgBox ("Souhaitez-vous ouvrir le dossier"), vbYesNo
      If ret = vbNo Then
      Exit Sub
      Else
      Dim rep As String
      rep = chemin
      Shell "explorer.exe " & rep, 1

      Application.Calculation = xlCalculationAutomatic
      End If
      End Sub
      0