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

VBA Discussion :

GetSaveAsFilename pour vba exel


Sujet :

VBA

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 122
    Points : 189
    Points
    189
    Par défaut GetSaveAsFilename pour vba exel
    Bonjour tout le monde

    J'essais de créer un nouveau fichier exel en l'enregistrant.

    j'arrive à créer un nouveau fichier, mai je n'arrive pas à le nommer.

    Voici 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
     
    Sub enregistrersous()
     
    Dim msg As String
    Dim nomClasseur As String
    Dim vclasseur As Workbook
     
    On Error Resume Next
     
    Set vclasseur = Workbooks.Add
    nomClasseur = Application.GetSaveAsFilename
     
    If Err.Number <> 0 Then
        msg = "impossible d'enregistrer le Classeur" & nomClasseur & vbCr
        msg = msg & "erreur N° " & Err.Number & " : " & Err.Description
        MsgBox msg, vbExclamation, "Enregistrement impossible"
    End If
     
    End Sub

    Y a t'il un moyen de nommer le fichier lors de sa création.

    Cordialement

    A bientôt
    je suis un développeur debutant qui cherche à comprendre.

    Certain livre sont pas facile à comprendre.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    GetSaveAsFileName , ne te permet pas de sauver mais de sélectionner/Saisir le nom avec lequel tu ve sauver ton fichier...

    modifie la ligne :
    sans type (Variant) .. GetSaveAsFileName retournant un boolean à false si pas de fichier sélectionner, sinon retourne une chaine contenant le nom dee fichier..


    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    nomClasseur = Application.GetSaveAsFilename
    If nomClasseur <> False Then
      vclasseur.SaveAs nomClasseur
    End If

  3. #3
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Il faut l'enregistrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If nomClasseur <> "" Then vclasseur.SaveAs Filename:=nomClasseur
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 122
    Points : 189
    Points
    189
    Par défaut
    Bonjour tout le monde

    Ca fonctionne, je souhaiterais faire en sorte que le fichier enregistré soit automatiquement en .xls

    J'ai essayé avec le code ci-dessous mai ca ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nomClasseur = Application.GetSaveAsFilename(nomClasseur, xls, xls, enregistrer, enregistrer)
    Que dois je modiffier svp.

    Merci

    Cordialement

    A bientôt
    je suis un développeur debutant qui cherche à comprendre.

    Certain livre sont pas facile à comprendre.

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    il n'y a pas de touche F1 sur ton clavier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomClasseur = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls), *.xls")
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 122
    Points : 189
    Points
    189
    Par défaut
    Re

    Merci ca fonctionne!

    J'ai remarqué qu'il cré deux fois le même fichier.

    Peux ton iremédier?

    A+
    je suis un développeur debutant qui cherche à comprendre.

    Certain livre sont pas facile à comprendre.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Mets tout le code que tu utilises pour cette sauvegarde

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 122
    Points : 189
    Points
    189
    Par défaut
    Bonsoir tout le monde



    Voici tout 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
    27
    28
    29
     
     
    Dim msg As String
    Dim nomClasseur
    Dim vclasseur As Workbook
     
    On Error Resume Next
     
    Set vclasseur = Workbooks.Add
    nomClasseur = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xls), *.xls")
     
    If nomClasseur <> False Then
     
    vclasseur.SaveAs nomClasseur
     
    End If
     
    If nomClasseur <> "" Then
    vclasseur.SaveAs Filename:=nomClasseur
     
    End If
     
    If Err.Number <> 0 Then
        msg = "impossible d'enregistrer le Classeur" & nomClasseur & vbCr
        msg = msg & "erreur N° " & Err.Number & " : " & Err.Description
        MsgBox msg, vbExclamation, "Enregistrement impossible"
    End If
     
    End Sub
    Cordialement

    A bientôt
    je suis un développeur debutant qui cherche à comprendre.

    Certain livre sont pas facile à comprendre.

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ça ne te paraît pas évident ? Là, effectivement, tu enregistres deux fois le fichier
    Si tu veux tester les deux conditions, essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If (nomClasseur <> False) or (nomClasseur <> "" )Then 
         vclasseur.SaveAs filename:=nomClasseur 
    End If
    Je ne suis pas sûr que tu puisses à la fois tester un boolean et un string... Si tu as une erreur, imbrique tes tests
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if....test 1
    ....if test 2
    Mais comme je n'ai pas tout relu, je ne comprends pas ton double test
    Tu testes et tu dis, je relirai si nécessaire

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    1 122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 122
    Points : 189
    Points
    189
    Par défaut
    Re

    Merci, ca fonctionne ouskel'n'or

    Faudra que je face plus attention la prochaine fois.

    A+
    je suis un développeur debutant qui cherche à comprendre.

    Certain livre sont pas facile à comprendre.

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

Discussions similaires

  1. [VBA-Exel] Adresse d'une cellule fusionnée
    Par gloll dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 03/08/2006, 09h25
  2. [VBA-Exel] Ajout automatique de références
    Par gloll dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/07/2006, 14h29
  3. [Outils] MzTools pour VBA
    Par Papy Turbo dans le forum Contribuez
    Réponses: 1
    Dernier message: 31/05/2006, 10h52
  4. dll C++ pour VBA : erreur 49 et 453
    Par EL0807 dans le forum C++
    Réponses: 2
    Dernier message: 18/03/2006, 23h01
  5. [VBA Exel] Copier un fichier xls et lui donner un autre nom
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/11/2005, 17h40

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