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 :

"Sauvegarder sous" un fichier Excel à l'aide d'une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    ingé méthodes industrialisation
    Inscrit en
    Janvier 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : ingé méthodes industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 5
    Par défaut "Sauvegarder sous" un fichier Excel à l'aide d'une macro
    J’ai un problème avec une macro, la macro en question lance une sauvegarde et imprime en automatique le fichier puis le ferme.
    Lorsque je veux enregistrer sur mon pc dans « C:\Users\XXX » je me sers de la macro ci-dessous et le fichier s’enregistre à l’endroit souhaité.


    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
    Private Sub ValiderEditer_Click()
    If FicherNom.Value <> "" Then
    ChDir "C:\Users\XXX"
        ActiveWorkbook.SaveAs Filename:=FicherNom.Value _
            , FileFormat:=xlExcel8 _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False 
            Range("B1:E44").Select 
        ActiveWindow.SmallScroll Down:=-40
        Selection.PrintOut Copies:=1, Collate:=True
            Call raz 
    
    Unload Me
    Dim Wb As Workbook
    For Each Wb In Application.Workbooks
    Wb.Saved = True
    Next Wb
    
    Application.Quit
    End If
    End Sub

    Lorsque je veux enregistrer sur le réseau « Z:\Transfert\XXX » je me sert de la macro ci-dessous et le fichier s’enregistre dans « Bibliothèques\Documents »...

    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
    Private Sub ValiderEditer_Click()
    If FicherNom.Value <> "" Then
    ChDir "Z:\Transfert\XXX" 
        ActiveWorkbook.SaveAs Filename:=FicherNom.Value _
            , FileFormat:=xlExcel8 _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False 
            Range("B1:E44").Select
        ActiveWindow.SmallScroll Down:=-40
        Selection.PrintOut Copies:=1, Collate:=True
            Call raz 
    
    Unload Me
    Dim Wb As Workbook
    For Each Wb In Application.Workbooks
    Wb.Saved = True
    Next Wb
    
    Application.Quit
    End If
    End Sub

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    A ma connaissance, ChFir change le répertoire par défaut du FileSystem. Ca joue sur des commandes et des fonctions comme Dir() ou GetObject mais ça n'a pas d'effet sur les méthodes des objets Excel comme Open ou Save.

    Il est bien plus fiable d'indiquer le chemin avec le nom de fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs Filename:="Z:\Transfert\XXX\" & FicherNom.Value

  3. #3
    Membre à l'essai
    Homme Profil pro
    ingé méthodes industrialisation
    Inscrit en
    Janvier 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : ingé méthodes industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 5
    Par défaut "sauvegarder sous" un fichier Excel à l'aide d'une macro
    J'ai mis ca comme code et ca ne fonctionne pas.

    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
    Private Sub ValiderEditer_Click()
    If FicherNom.Value <> "" Then
    ActiveWorkbook.SaveAs Filename:="Z:\Transfert\XXX" & FicherNom.Value 'destination sauvegarde
    
                    ActiveWorkbook.SaveAs Filename:=FichierNom.Value _
            , FileFormat:=xlExcel8 _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False 'Nom et propriétés de protection du fichier
            Range("B1:E44").Select 'Zone d'impression
        ActiveWindow.SmallScroll Down:=-40
        Selection.PrintOut Copies:=1, Collate:=True
            Call raz 'Appel le sous-programe remise à zéro pour permettre de remettre la fiche dans son état vierge
    
    Unload Me
    Dim Wb As Workbook
    For Each Wb In Application.Workbooks
    Wb.Saved = True
    Next Wb
    
    Application.Quit
    End If
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 676
    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 676
    Par défaut
    Bonjour,
    ca ne fonctionne pas
    Peux tu être encore moins précis ?

    Un message d'erreur ? si oui lequel ?
    Si non que se passe-t-il ?

    Attention par rapport à la proposition de Menhir il te manque un slash après le XXX

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par toitoine-II Voir le message
    J'ai mis ca comme code et ca ne fonctionne pas.
    Regarde ta ligne de code.
    Regarde ma ligne de code.
    Tu ne vois pas une différence ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    ingé méthodes industrialisation
    Inscrit en
    Janvier 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : ingé méthodes industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 5
    Par défaut "sauvegarder sous" un fichier Excel à l'aide d'une macro
    Pardon du manque de précision, je pensé avoir fait une faute ennorme dans le code.
    il y a l'erreur "424 : objet requis" qui s'affiche.

    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
    Private Sub ValiderEditer_Click()
    If FicherNom.Value <> "" Then
    ActiveWorkbook.SaveAs Filename:="Z:\Transfert\Transformation\IML2\fiche de prod a traiter\" & FicherNom.Value 'destination sauvegarde
     
                    ActiveWorkbook.SaveAs Filename:=FichierNom.Value _
            , FileFormat:=xlExcel8 _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False 'Nom et propriétés de protection du fichier
            Range("B1:E44").Select 'Zone d'impression
        ActiveWindow.SmallScroll Down:=-40
        Selection.PrintOut Copies:=1, Collate:=True
            Call raz 'Appel le sous-programe remise à zéro pour permettre de remettre la fiche dans son état vierge
     
    Unload Me
    Dim Wb As Workbook
    For Each Wb In Application.Workbooks
    Wb.Saved = True
    Next Wb
     
    Application.Quit
    End If
    End Sub
    le fichier s'enregistre au bon endroit mais il y a un bug dans la macro et il ne s'imprime pas.
    (il ne peut pas y avoir de bug dans l'utilisation du fichier, l'Excel est utilisé par des personnes encore plus novice que moi en informatique)

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par toitoine-II Voir le message
    il y a un bug dans la macro et il ne s'imprime pas.
    Voir le dernier post de halaster08 ( ) concernant le manque d'information de tes messages.

    il ne peut pas y avoir de bug dans l'utilisation du fichier, l'Excel est utilisé par des personnes encore plus novice que moi en informatique
    La logique liant les deux propositions de cette phrase m'échappe...
    Penser le manque de connaissance est inversement proportionnel au risques d'erreur me semble illogique.

  8. #8
    Membre à l'essai
    Homme Profil pro
    ingé méthodes industrialisation
    Inscrit en
    Janvier 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : ingé méthodes industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 5
    Par défaut "Sauvegarder sous" un fichier Excel à l'aide d'une macro
    Pour te résumé le contexte, des opérateurs vont se servir de l'Excel en question, le fichier s'enregistre la ou je veux donc en théorie ca passe.
    Mais un message de bug s'affiche lors de la macro. Si je devais m'en servir moi meme, ca passerait en "mode dégradé" de l'utilisation standard. Mais la si je le laisse comme ca ils vont faire n'importe quoi.
    je n'aurai pas a faire cette macro si tout nos opérateurs étaient capable de faire "enregistrer sous" un fichier au bon endroit en le renomant sans écraser les autres fichiers.
    Bref mon probleme...


    En ce qui concerne ton code et mon code, je viens de recopié ton code dans mon code:
    -message d'erreur "424 : objet requis" s'affiche.
    -ca me lance l'aide au debug
    -je fais annulé
    -le fichier s'enregistre au bon endroit
    -il ne s'imprime pas

    Savez vous ce qu'il faut faire pour résoudre ce problème. (ci-dessous le code en question)

    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
    Private Sub ValiderEditer_Click()
    If FicherNom.Value <> "" Then
    ActiveWorkbook.SaveAs Filename:="Z:\Transfert\Transformation\IML2\fiche de prod a traiter\" & FicherNom.Value 'destination sauvegarde
     
                    ActiveWorkbook.SaveAs Filename:=FichierNom.Value _
            , FileFormat:=xlExcel8 _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False 'Nom et propriétés de protection du fichier
            Range("B1:E44").Select 'Zone d'impression
        ActiveWindow.SmallScroll Down:=-40
        Selection.PrintOut Copies:=1, Collate:=True
            Call raz 'Appel le sous-programe remise à zéro pour permettre de remettre la fiche dans son état vierge
     
    Unload Me
    Dim Wb As Workbook
    For Each Wb In Application.Workbooks
    Wb.Saved = True
    Next Wb
     
    Application.Quit
    End If
    End Sub

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 242
    Par défaut
    Bonjour,
    Tu sauvegardes 2 fois ton fichier (SaveAs), une fois avec FicherNom.Value et une autre fois avec FichierNom.Value.
    Une seule fois suffit, avec le bon chemin et le bon nom de fichier.

  10. #10
    Membre à l'essai
    Homme Profil pro
    ingé méthodes industrialisation
    Inscrit en
    Janvier 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : ingé méthodes industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2019
    Messages : 5
    Par défaut "Sauvegarder sous" un fichier Excel à l'aide d'une macro
    Comme ceci?

    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
    Private Sub ValiderEditer_Click()
    If FicherNom.Value <> "" Then
    ActiveWorkbook.SaveAs Filename:="Z:\Transfert\Transformation\IML2\fiche de prod a traiter\" & FichierNom.Value 'destination sauvegarde
     
     
            , FileFormat:=xlExcel8 _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False 'Nom et propriétés de protection du fichier
            Range("B1:E44").Select 'Zone d'impression
        ActiveWindow.SmallScroll Down:=-40
        Selection.PrintOut Copies:=1, Collate:=True
            Call raz 'Appel le sous-programe remise à zéro pour permettre de remettre la fiche dans son état vierge
     
    Unload Me
    Dim Wb As Workbook
    For Each Wb In Application.Workbooks
    Wb.Saved = True
    Next Wb
     
    Application.Quit
    End If
    End Sub
    cette partie ce met en rouge
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     , FileFormat:=xlExcel8 _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False 'Nom et propriétés de protection du fichier
    (je tien a préciser que je débute les macro depuis 1 semaine et que j'ai récup/modif une macro qui n'était pas fonctionelle)

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 242
    Par défaut
    Supprime "'destination sauvegarde" et mets un caractère _ à la fin de la ligne ActiveWorkbook.SaveAs ..., et supprime les 2 lignes vides.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ActiveWorkbook.SaveAs Filename:="Z:\Transfert\Transformation\IML2\fiche de prod a traiter\" & FichierNom.Value _
            , FileFormat:=xlExcel8 _
            , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False 'Nom et propriétés de protection du fichier
    Le _ permet d'afficher une seule expression sur plusieurs lignes.

    Par ailleurs, dans ton code, je vois toujours FicherNom.Value et FichierNom.Value...

Discussions similaires

  1. [XL-2010] Sauvegarder un fichier excel à l'aide d'une macro en xlsx
    Par Gorillo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/07/2015, 17h01
  2. Sauvegarde automatique de fichier excel sous un autre nom
    Par Jonathan Raucy dans le forum Excel
    Réponses: 1
    Dernier message: 30/01/2008, 14h37
  3. ouvrir un fichier excel a partir d'une macro
    Par kuhnden dans le forum Access
    Réponses: 6
    Dernier message: 07/06/2007, 15h54
  4. [VBA]comment masquer des fichiers excel au démarrage d'une macro?
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/04/2007, 15h33
  5. sauvegarde d'un fichier excel csv sous le format xls
    Par blondelle dans le forum C++Builder
    Réponses: 5
    Dernier message: 01/08/2006, 11h30

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