IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Enregistrement Classeur Via variable Chemin et variable NomFichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2009
    Messages : 70
    Par défaut Enregistrement Classeur Via variable Chemin et variable NomFichier
    Bonjour à tous,

    Suite à un formulaire (Userform) je rempli des cases d'un classeur excel, à la fin du remplissage, je souhaiterai via un bouton valider :
    Et au moment de valider :
    1 - Je ferme mon Formulaire

    2 - Une boite de dialogue s'ouvre en recherchant un repertoire de destination mais le nom du classeur est variabilisé en fonction des cases remplies via mon formulaire, soit :
    MonFichier = Format(Date, "yyyymmdd") & "_" & Tbx_Nom_DAT & "_" & Cbx_DAT_Out & ".xlsx" => Format(Date, "yyyymmdd") mon nom de fichier commence par la date
    => Tbx_Nom_DAT corresspond a une case rempli par mon formulaire
    => Cbx_DAT_Out corresspond a une case rempli par mon formulaire

    2 - Selectionner un repertoire avec une boite de dialogue qui va chercher le repertoire, soit :
    ' Ouverture de la fenêtre de choix du répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
               ..........
              MonFichier = Format(Date, "yyyymmdd") & "_" & Tbx_Nom_DAT & "_" & Cbx_DAT_Out & ".xlsx"
              Dim ShellApp As Object
              Dim chemin As String
     
              Set ShellApp = CreateObject("Shell.Application")
              chemin = ShellApp.BrowseForFolder(0, "Repertoire de destination", 0).self.Path
              Set ShellApp = Nothing
              ActiveWorkbook.SaveAs Filename:= chemin & "\" & MonFichier
    3 - enregistre et ferme tout


    Je n'arrive pas a trouver comment je peux enregistrer ce classeur ... mode debug et ça fait 2 jours que je suis dessu ... tout en sachant que c'est certainemeent simple mais !!! je bug aussi !!!
    Le problème est la derniere ligne ... du moins ça Bug !!!
    Merci a vous de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Bonjour,

    Ca bug
    N'est pas un message d'erreur très explicite.

    Quels sont les valeurs de "chemin" et "MonFichier" au moment de l'erreur ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2009
    Messages : 70
    Par défaut Merci pour la réactivité :
    Je precise je suis débutant en VBA ... mais je ne comprends pas le message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Erreur d'execution '1004':
    Impossible d'utiliser cette extension avec le type de fichier
    Selectionné. Modifiez l'extension du fichier dans la zone texte Nom
     du fichier ou selectionnez un autre type de fichier dans la zone 
    Type de fichier.
    C'est sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & MonFichier
    que cela s'arrête ...
    Tout le reste fonctionne ...

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    L'aide sur save as: https://msdn.microsoft.com/fr-fr/VBA...s-method-excel
    Vu que tu passe d'un fichier xlsm a un fichier xlsx, il me parait judicieux de préciser "FileFormat"

    et tu n'as pas répondu a ça:
    Quels sont les valeurs de "chemin" et "MonFichier" au moment de l'erreur ?
    Elles sont visibles dans la fenêtre des variables locales.

  5. #5
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Histoire d'ajouter de l'eau au moulin ...

    Personnellment j'utiliserai les FileDialog qui te permette très facilement de gérer ouverture, fermeture des classeurs.

    Fait F1

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2009
    Messages : 70
    Par défaut
    Je l'ai mis dans mon première intitulé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    MonFichier = Format(Date, "yyyymmdd") & "_" & Tbx_Nom_DAT & "_" & Cbx_DAT_Out & ".xlsx"
     
    chemin = ShellApp.BrowseForFolder(0, "Repertoire de destination", 0).self.Path

  7. #7
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Ca c'est le code, pas la valeur.
    Tu as des variables dans ton code, es tu sur qu'ils ont la valeur que tu attendais ?
    Le meilleur moyen de le vérifier c'est d'aller voir dans la fenêtre des variables locales, parfois on a des surprises.

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/03/2012, 15h31
  2. [XL-2010] sauvegarder un classeur/via la boite de dialogue Enregistrer sous
    Par cylap dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 22/02/2012, 10h27
  3. Enregistrer classeur via macro en le nommant
    Par Kirgerad dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/04/2010, 15h16
  4. [XL-2003] Enregistrer classeur avec nom variable et chemin variable
    Par Lufia dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/10/2009, 22h29
  5. [Debutant] Ouvrir un enregistrement spécifique via une liste de contrôle.
    Par Superbretzel dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/02/2008, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo