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 :

Sauvegarde dans un répertoire spécifique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut Sauvegarde dans un répertoire spécifique
    Bonjour,
    Mon problème est le suivant :

    J'ai réalisé (avec mes piètres connaissances) une macro qui sauvegarde une facture dans un répertoire spécifique sous Windows XP (32bits) et EXCEL 2003 .
    Il fonctionne très bien !

    Je suis passé à Windows 7 Ultimate (64bits) et Office 2010.
    La macro se déroule très bien jusqu'au moment de sauvegarder le fichier dans le répertoire où je désire le mettre. Là, il me retourne une erreur.

    Après bien des recherches, je ne trouve pas la solution. Quelqu'un peut-il m'aider ?

    Ci-dessous le bout de programmation incriminé (en rouge gras, la ligne qui bloque) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ' Sauvetage du nouveau fichier dans le répertoire « C:\Facture »
    ' de l'ordinateur de base par le réseau
      Workbooks(NouveauClasseur).Sheets(Onglet1).Activate
             
    ' Sélection de la feuille « Facture » dans le modèle de base
      Workbooks(ModèleGen).Sheets(Onglet1).Activate
     
    ' Dévérrouillage de la feuille « Facture » -> Onglet 1
          With Worksheets(Onglet1)
              .Unprotect ("1")
          End With
              
          Nom_facture = "Facture-" & [E19] & " - " & [T10]
       Workbooks(NouveauClasseur).Activate
       
          ActiveWorkbook.SaveAs Filename:=RepSauve & Nom_facture
          MsgBox Nom_facture & " sauvegardée !"
          
    ' Sélection de la feuille « Facture »
          Sheets(Onglet1).Activate
    J'ai essayé de supprimer « RepSauve & », cela fonctionne, mais le programme met le fichier dans « Mes documents »

  2. #2
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonsoir,
    Quel est le n° de l'erreur?
    N'y aurait il pas un problème d'autorisation (sécurité) sur le dossier?

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    J'ai essayé de supprimer « RepSauve & », cela fonctionne, mais le programme met le fichier dans « Mes documents »
    Très bien mais tu nous montres ton code et nulle part je ne vois comment est alimentée cette variable RepSauve.
    Difficile ainsi de savoir pourquoi quand tu la supprime de la ligne ActiveWorkbook.SaveAs Filename:=RepSauve & Nom_facture cela fonctionne (bien sûr pas dans le bon répertoire). Peut-être cette variable est vide.
    As-tu placer un debug.print RepSauve juste avant cette ligne ou un espion pour en connaître la valeur.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut
    Bonsoir à vous et merci de bien vouloir vous pencher sur mon problème.

    Suite à vos demandes, L'initialisation des variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Dim RepSauve, RepModèle, ClasseurRés As String
    Dim NouveauClasseur, ModèleGen As String
    Dim Onglet1, Onglet2, Onglet3, Onglet4, Onglet5, Onglet6 As String
     
    ' Définition des variables
     
    RepModèle = "\\JEFF-PC\Procédures\"
    RepSauve = "\\JEFF-PC\Facture\"
     
    ModèleGen = "Facture-01.xls"
    ClasseurRés = "Facture-res.xls"
    Rep_Mod_gen = RepModèle & ModèleGen
    Nom_facture = "Facture-"
    Onglet1 = "Facture"
    Onglet2 = "Codes"
    Onglet3 = "BV Canon"
    Onglet4 = "BV DCP-9045"
    Onglet5 = "Intro"
    Onglet6 = "Récap"
    Le travail se fait correctement, il ouvre un nouveau classeur, prend son nouveau nom « Facture-10095 - Tartenpion », elle est ouverte à l'écran.
    C'est à partir de là qu'Excel semble tourner en rond à chercher le répertoire où aller, il affiche dans la barre d'état qu'il cherche le répertoire, puis il affiche l’erreur suivante :

    Erreur d'exécution '1004':
    La méthode 'SaveAs' de l'objet '_workbook' a échoué.


    Pour ce qui est de la variable, elle contient :

    RepSauve = "\\JEFF-PC\Facture\"

    Si vous désirez la totalité du programme, je le poste volontiers en MP

Discussions similaires

  1. Réponses: 13
    Dernier message: 28/02/2010, 23h43
  2. Enregistrement dans un répertoire spécifique
    Par marinef dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/05/2009, 11h54
  3. Upload dans un répertoire spécifique
    Par charliejo dans le forum Flash
    Réponses: 6
    Dernier message: 14/09/2007, 13h02
  4. Lien DLL dans un répertoire spécifique
    Par dimdidi dans le forum Langage
    Réponses: 7
    Dernier message: 20/02/2006, 09h06

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