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 :

Problème de macro de sauvegarde [XL-2019]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Superviseur en transport
    Inscrit en
    Août 2019
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Superviseur en transport
    Secteur : Transports

    Informations forums :
    Inscription : Août 2019
    Messages : 102
    Points : 70
    Points
    70
    Par défaut Problème de macro de sauvegarde
    Bonjour,

    Je fais une macro afin de faire un "enregistrer sous" de mon fichier. Le nom de mon fichier est la valeur de la cellule "BE2" de la feuille "Calcule". Quand je lance ma macro, j'ai le message d'erreur
    Erreur d'exécution '1004': La méthode 'SaveAs' de l'objet'_Workbook' a échoué.
    Et la ligne 8 se surligne en jaune. Quand je passe mon curseur sur mon code je remarque de ma variante Nomdeficher n'a que ".xlsm" comme valeur. Que dois-je modifier afin d'avoir le nom désiré?

    Merci d'avance,

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Enregistrer()
    Dim Nomdefichier As String
    Dim Chemin As String
     
        Chemin = "U:\Documents\"
        Nomdefichier = Sheets("Calcule").Range("BE2") & ".xlsm"
        ThisWorkbook.SaveAs Chemin & Nomdefichier, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
     
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    Je pense que c'est le chemin qui n'est pas bon, ou du moins incomplet.
    Faites l'opération suivante:
    -Ouvrez Excel
    -Développeur- "Enregistrer une macro"
    -Ouvrez un fichier quelconque qui se trouve dans "U:\Documents".
    -Arrêtez l'enregistrement
    -Allez dans le module et récupérez le chemin enregistré et collez-le à la place de "U:\Documents" de votre fichier.
    Essayez

    Cdlt

  3. #3
    Membre régulier
    Homme Profil pro
    Superviseur en transport
    Inscrit en
    Août 2019
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Superviseur en transport
    Secteur : Transports

    Informations forums :
    Inscription : Août 2019
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Bonjour Arturo83,

    Vous ne croyez pas que l'erreur viendrait du nom de fichier qui semble inexistant?

    Merci,

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Vous ne croyez pas que l'erreur viendrait du nom de fichier qui semble inexistant?

    Au départ, avant le premier enregistrement, le fichier est bien inexistant, non?

    Avez-vous essayez ce que j'ai proposé?

  5. #5
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    Si la variable Nomdefichier ne contient que ".xlsm", de deux choses l'une.
    Soit la cellule Sheets("Calcule").Range("BE2") est vide
    Soit l'information est dans une autre cellule

    Plusieurs pistes
    Il est préférable de donner un "nom" à la cellule, par exemple "NomFichier". Pour faire ça il faut cliquer sur la cellule à nommer, puis menu "Formule", "gestionnaire de nom". Bouton "Nouveau", tu saisis le Nom ("NomFichier") et tu enregistres

    Dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nomdefichier = ThisWorkBook.worksheet("Calcule").Range("NomFichier").value & ".xlsm"
    Avantage, si la cellule est déplacer, le nom suivra la cellule, les noms sont accessible à partir d'autre page s'il sont configurer en portée classeur (défini lors de la création du nom).


    Plus globalement, regarde du coté de l'extension .xlt et xltm, ce sont les fichiers modèle d'Excel. Le fichier de base ouvre une copie de lui même quand on double-clique sur le fichier pour le lancer, ainsi le modèle ne peut être détruit.


    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Membre régulier
    Homme Profil pro
    Superviseur en transport
    Inscrit en
    Août 2019
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Superviseur en transport
    Secteur : Transports

    Informations forums :
    Inscription : Août 2019
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Bonjour et merci pour vos réponses.

    En fait le but de ma macro est d'ouvrir un fichier "master" et de l'enregistrer sous un autre nom. Donc, non, le nom du fichier n'existe pas avant le lancement de la macro.

    Il me faut un fichier par semaine afin d'archiver quel véhicule fessait quoi a cette date et quel chauffeur le chauffait. Auriez-vous une autre approche à me suggérer?

    Merci encore pour votre précieuse aide.

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 369
    Points : 518
    Points
    518
    Par défaut
    Bonjour,

    Dans ce cas, ne te faudrait-il juste pas créer un nouveau classeur vierge et le renommer par la suite ? Ainsi il existera.

    1 classeur par semaine ? Pour tous les chauffeurs ou pour chacun des chauffeurs ?
    Ne peux-tu pas faire par exemple un classeur mensuel / trimestriel avec une feuille par semaine ? Cela éviterait que tu aies 52 nouveaux classeurs par année, en supposant que ce soit pour "tous les chauffeurs".

    Bonne journée

  8. #8
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    Pour être sur d'avoir bien compris

    Tu as un fichier avec le listing des véhicules d'une entreprise.
    Tu souhaites faire une macro qui génère un fichier par véhicule et par semaine.

    C'est bien ça?

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  9. #9
    Membre régulier
    Homme Profil pro
    Superviseur en transport
    Inscrit en
    Août 2019
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Superviseur en transport
    Secteur : Transports

    Informations forums :
    Inscription : Août 2019
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Bonjour et désolé pour le temp de réponse, le sommeil a gagné le combat,

    En fait, mon classeur gère une semaine complète. Quel autobus fait quel circuit, qu'elle conducteur chauffe l'autobus, a chaque jour qu'elle autobus est garé ou dans le garage et même gère les paies des employés. Donc j'aimerais juste mettre un bouton sur la feuille du dimanche, qui ouvrirait le fichier vierge ou tous les formules et macros sont déjà créé, et l'enregistrer sous un nom (urbain 1 - 5 jan au 11 jan 2020).

    Merci encore pour votre aide.

  10. #10
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    Regarde si ça colle à ton besoin


    1. Tu mets le fichier Modele.xlsm dans un dossier.
    2. Dans ce dossier tu ajoute un dossier Semaines par exemple.
    3. Tu ouvres Modèle.xlsm, tu fais un clique droit sur l'onglet "Pointage", puis "Afficher..." et tu affiches l'onglet Options
    4. Tu renseignes les deux chemins en fonction de tes dossiers
    5. Tu masques l'onglet Options
    6. Tu l'enregistres et tu le fermes
    7. Tu fais une copie de Modéle.xlsm que tu places dans Semaines et que tu renommes comme bon te semble
    8. Tu ouvres ce nouveau fichier, c'est le point de départ
    9. Tu cliques sur le bouton "Créer Semaine Suivante"
    10. ...


    ++
    Qwaz
    Fichiers attachés Fichiers attachés

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  11. #11
    Membre régulier
    Homme Profil pro
    Superviseur en transport
    Inscrit en
    Août 2019
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Superviseur en transport
    Secteur : Transports

    Informations forums :
    Inscription : Août 2019
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Merci Qwazerty,

    Je vais faire des tests et je te reviens,

  12. #12
    Membre régulier
    Homme Profil pro
    Superviseur en transport
    Inscrit en
    Août 2019
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Superviseur en transport
    Secteur : Transports

    Informations forums :
    Inscription : Août 2019
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Ton modèle semble fonctionner. Mais, Jai une erreur a la ligne 21. (Erreur d'exécution '1004': La méthode 'SaveAs' de l'objet'_Wookbook' a échoué) Est-ce qu'il se pourrait qu'il me manque un .dll?
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub Btn_Semaine_Suivante()
    Dim NextLundi As Date
    Dim NewClasseur As Workbook
    Dim NewNom As String
     
        'On calcule la date de début de la période suivante
        NextLundi = CDate(F_Pointage.Range("DebutPeriode").Value) + 7
     
        'On va ouvrir le fichier modèle
        Set NewClasseur = Workbooks.Add(F_Options.Range("CheminModele"))
     
        'On pointe le nouveau classeur
        With NewClasseur
            'On le renome
            NewNom = "urbain - " & Format(NextLundi, "dd mmm") & " au " & Format(NextLundi + 6, "dd mmm yyyy") & ".xlsm"
     
            'On modifie les dates de période
            .Worksheets(F_Pointage.Name).Range("DebutPeriode") = NextLundi
     
            'On l'enregistre
            .SaveAs F_Options.Range("CheminSemaine").Value & NewNom, xlOpenXMLWorkbookMacroEnabled
     
            'On le ferme
            '.Close
        End With
     
     
     
    End Sub

  13. #13
    Membre régulier
    Homme Profil pro
    Superviseur en transport
    Inscrit en
    Août 2019
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Superviseur en transport
    Secteur : Transports

    Informations forums :
    Inscription : Août 2019
    Messages : 102
    Points : 70
    Points
    70
    Par défaut
    Merci Qwazerty,

    J'ai trouvé mon problème. Le disque que je tentais d'enregistrer dessus ce trouve sur un serveur. Ce serveur était éteint pour des fins d'entretiens. Maintenant que le serveur est sur pied, tout fonctionne à merveille. Il reste plus qu'à adapter à mon fichier.

    Merci énormément,

  14. #14
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    Je me permets de vous signaler que si vous aviez suivi mon conseil du 2ème post, vous auriez trouver tout de suite.

    Cdlt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème sur règle de macro de sauvegarde
    Par flacdomatmut dans le forum VBA Outlook
    Réponses: 20
    Dernier message: 07/07/2014, 13h05
  2. Problème avec logiciel de sauvegarde TapeWare et fichier Mac
    Par boleduch dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 18/04/2008, 08h10
  3. [itext] problème d'ouverture et sauvegarde pdf
    Par kifouillou dans le forum Documents
    Réponses: 27
    Dernier message: 21/02/2007, 10h40
  4. [VBA-E] Problème activation macro
    Par kamshaa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/02/2007, 17h02
  5. [MS SQL Server 2000] problèmes de sécurité et sauvegarde
    Par Abydos Business Group dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2006, 19h36

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