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 :

Bouton pour enregistrer un fichier selon le format d'une cellule - argument nommé introuvable [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Bouton pour enregistrer un fichier selon le format d'une cellule - argument nommé introuvable
    Bonjour,

    Je suis débutant en VBA et j'essaye créer un bouton pour enregistrer un fichier là ou je veux dans le forma que je veux et avec le nom définis dans une cellule.

    A force de piocher des idée à droite et à gauche j'arrive à ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub SavefichierEF()
    Dim fichier As String
    Dim Name As String
    On Error Resume Next
    Name = [F14]
    ChDir "D:\SUD GEOTECHNIQUE\Devis\"
    fichier = Application.GetSaveAsFilename(InitialFileName:="D:\SUD GEOTECHNIQUE\Devis\" & Name, FileFormat:=xlOpenXMLWorkbookMacroEnabled, FileFilter:="Excel Files (*.xlsm), *.xlsm")
    If fichier <> False Then ThisWorkbook.SaveAs fichier
    End Sub
    Et pouf argument nommé introuvable. je sais pas trop comment faire et je comprend pas d’où vient l’erreur.
    Si possible merci d'être didactique, je suis vraiment débutant débutant.

    Merci

  2. #2
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut
    Hello,

    La notation a crochet que vous utilisez est à proscrire de tout code "correct" pour de nombreuses raisons.

    Lancer son code en mode pas à pas, permet de se rendre compte des soucis du contenu de variable, et est souvent d'une bone aide pour identifier des variables qui ne contiendraient pas la donnée escomptée.

    Un peu de lecture :

    notation-raccourcie-plage-fausse-bonne-idee/
    Michaël

    Si mon aide/avis vous a été profitable , n'hésitez pas à cliquer sur , ça fait toujours plaisir...
    _________________________________________________________________________________________________________________

    "Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu'il est stupide..."
    Albert Einstein

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    Merci pour cette précision.
    Bon mais même avec Range ça plante toujours


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub SavefichierEF()
    'Macro dan le 28/11/2010
    Dim fichier As String
    Dim Name As String
    On Error Resume Next
    Name = Range("F14").Value
    ChDir "D:\SUD GEOTECHNIQUE\Devis\"
    fichier = Application.GetSaveAsFilename(InitialFileName:="D:\SUD GEOTECHNIQUE\Devis\" & Name, FileFormat:=xlOpenXMLWorkbookMacroEnabled, FileFilter:="Excel Files (*.xlsm), *.xlsm")
    If fichier <> False Then ThisWorkbook.SaveAs fichier
    End Sub

  4. #4
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut
    Hello,

    Essaie avec ce code, il sera à modifier par tes soins pour allé chercher le Name dans ta cellule ( attention a bien indiquer aussi la parentalité de ton Range dans le code)

    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
    Sub SavefichierEF2()
     
        Dim strFolder As String
        Dim i As Long
        Dim chemin As String
     
     
        Filename = ActiveWorkbook.Name & "_" & Format(Now, "yyyy-mm-dd_hh mm") & ".xlsm" ' A modifier en allant chercher ta cellule ( bien laisser le .Xlsm)
        chemin = "D:\SUD GEOTECHNIQUE\Devis\"
     
        'Open Save As dialog to a default folder with default file name
        With Application.FileDialog(msoFileDialogSaveAs)
            .AllowMultiSelect = False
            .InitialFileName = chemin & Filename
            .InitialView = msoFileDialogViewDetails
     
            If .Show = -1 Then strFolder = .SelectedItems(1) Else Exit Sub
     
            'get selected folder path from FileDialog, but remove filename from FileDialog
            folderPath = Left(strFolder, InStrRev(strFolder, "\"))
     
            'Save this workbook in chosen file path & appropriate filename
            'File format .xlsm
            ThisWorkbook.SaveAs Filename:=folderPath & Filename, FileFormat:=xlOpenXMLWorkbookMacroEnabled
        End With
    End Sub
    Michaël

    Si mon aide/avis vous a été profitable , n'hésitez pas à cliquer sur , ça fait toujours plaisir...
    _________________________________________________________________________________________________________________

    "Tout le monde est un génie. Mais si on juge un poisson sur sa capacité à grimper à un arbre, il passera sa vie à croire qu'il est stupide..."
    Albert Einstein

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Ha super !

    ça marche nickel !!!

    Merci bcp

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

Discussions similaires

  1. [XL-2010] Un problème pour enregistrer un fichier au format XLSX
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/02/2017, 08h00
  2. Réponses: 1
    Dernier message: 27/03/2014, 14h05
  3. créer bouton pour enregistrer BDD sur une page
    Par guimauve dans le forum Access
    Réponses: 3
    Dernier message: 11/07/2006, 11h01
  4. Réponses: 2
    Dernier message: 23/03/2006, 20h38
  5. Boucle en Dos pour lister des fichiers selon une date
    Par Corben dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 17/12/2005, 12h17

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