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 :

Msgbox Pour enregistrer un fichier avec choix repertoire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 35
    Par défaut Msgbox Pour enregistrer un fichier avec choix repertoire
    Bonjour, débutant en VBA, je souhaiterai réaliser une Msbox au terme d'une Macro d'importation de données qui informerai l'utilisateur de l'heure et la date du moment et de choisir par oui/non d'enregistrer le fichier. Le choix si oui, serait de l'inviter à selectionner un périphérique externe (clé USB) et de mettre un nom de "base" comme fichier qu'il peut modifier également. Sur non, simplement que l'application Excel se ferme... Je ne sais vraiment pas trop comment m'y prendre, si quelqu'un pouvait me donner un coup de main ce serait vraiment cool...

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour,
    et en attendant ta macro tu veux un café?

    Non plus sérieusement je ne vais pas te la faire mais voici plusieur piste pour que tu puisse la faire tout seul, comme tu débute ca te donnera l'occasion de travailler sur des codes pour les comprendre

    Pour demander le répertoire ou écrire
    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
    Sub ChoixRepertoire()
    Dim chemin As String
    Dim objShell As Object, objFolder As Object, oFolderItem As Object
     
     Set objShell = CreateObject("Shell.Application")
     Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
     On Error GoTo Gesterr
     
     Set oFolderItem = objFolder.Items.Item
     chemin = oFolderItem.Path
    nom=inputbox("Nom du fichier :")
    'la su peux faire un test pour savoir si l'utilisateur a mis un .xls ou non
    MsgBox chemin & "\" & nom & ".xls" 'a remplacé par l'enregistrement
     
    Gesterr::
    End Sub
    Pour ton message box avec bouton oui non
    http://fring.developpez.com/vba/excel/msgbox/

    Si tu ne comprend pas la macro ou le tuto n'hésite pas a poser des questions.

    Ensuite commence ta macro, test là en mode pas a pas avec espion et affichage des variables local et tout, si tu ne sais pas faire on t'indiquera les tutos.
    Et ensuite montre nous ta macro et les observations que tu as pus faire concernant ce qui ne fonctionne pas.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 35
    Par défaut
    Tout d'abord, je n'ai pas eu le temps d'aller
    boire le café !!! --- mais j'aime bien


    Bon voilà mes essais...

    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 msgbox_enr()
    'Msgbox Oui + Non
    Select Case MsgBox("Enregistrer le fichier maintenant ?", vbYesNo + vbQuestion, "Sauvegarde du fichier")
    Case vbYes
    'procédure si click sur Oui
     
    Dim chemin As String
    Dim objShell As Object, objFolder As Object, oFolderItem As Object
     
     Set objShell = CreateObject("Shell.Application")
     Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire pour l'enregistrement du fichier", &H1&)
     On Error GoTo Gesterr
     
     Set oFolderItem = objFolder.Items.Item
     chemin = oFolderItem.Path
    nom = InputBox("Indiquer le nom du fichier :")
    'la su peux faire un test pour savoir si l'utilisateur a mis un .xls ou non
    MsgBox chemin & nom & ".xls" 'a remplacé par l'enregistrement
     
    Gesterr::
     
    Case vbNo
    'procédure si click sur Non
    CreateObject("Wscript.shell").Popup "Le fichier n'a pas été sauvegardé Excel va se fermer automatiquement dans 2 secondes... Bonne journée", 3, "Fermeture d'Excel", vbExclamation
    End Select
    End Sub
    Il ne me reste plus qu'à comprendre quelques languages de ce code, nottament comment faire pour la gestion des erreurs et surtout comment faire pour que le fichier s'enregistre

    Autrement pour ce qui est du bout de code que tu m'as donné, j'ai du supprimer un "\" dans la ligne:

    MsgBox chemin & "\" & nom & ".xls" 'a remplacé par l'enregistrement

    en effet, après il m'en rajoutait deux ???

    Encore une petite chose...

    Pour ce qui est du fichier, est-il possible de mettre un nom prédéfini
    qu'éventuellement l'utilisateur peut changer ???

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Quand tu donne un code utilise les balise regarde le premier message du forum il y a un lien pour t'expliquer, ensuite édite ton message pour les ajouter.
    Comment faire pour que le fichier s'enregistre?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activeworkbook.saveas Nom
    Pour ce qui est du fichier, est-il possible de mettre un nom prédéfini
    qu'éventuellement l'utilisateur peut changer ???
    Oui c'est possible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nom="Bob"
    Select Case MsgBox("Le fichier va s'appeler Bob voulez vous le modifier ?", vbYesNo + vbQuestion, "Sauvegarde du fichier")
    Case vbYes
    nom=inputbox("Nom du fichier :")
    end select
    ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    nom=inputbox("Nom du fichier :")
    if nom="" then 'nom est vide l'utilisateur a donc annulé
    nom="Bob "  & Date
    end if

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 35
    Par défaut
    Merci pour ta patience, pour commencer... je vais essayer de rédiger un peu mieux mes messages...

    Alors j'ai ajouté ces lignes... toutes mes boites fonctionne sauf qu'au final, l'enregistrement se fait en "écrasant" le dernier fichier et pas où on choisi le répertoire

    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
    Dim chemin As String
    Dim objShell As Object, objFolder As Object, oFolderItem As Object
     
     Set objShell = CreateObject("Shell.Application")
     Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire pour l'enregistrement du fichier", &H1&)
     On Error GoTo Gesterr
     
     Set oFolderItem = objFolder.Items.Item
     chemin = oFolderItem.Path
    Nom = "Bob"
    Select Case MsgBox("Le fichier va s'appeler Bob voulez vous le modifier ?", vbYesNo + vbQuestion, "Sauvegarde du fichier")
    Case vbYes
    Nom = InputBox("Nom du fichier :")
    End Select
    'la su peux faire un test pour savoir si l'utilisateur a mis un .xls ou non
    MsgBox chemin & Nom & ".xls" 'a remplacé par l'enregistrement
     
    ActiveWorkbook.SaveAs Nom
    Y'a-t-il un tuto sur ce sujet (enregistrements de fichiers) pour pas que je ne
    te prenne tout ton temps ???

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Il faut peut être lui dire où tu veux enregistrer et pas te contenter de mettre le nom. Les codes donné sur se forum doivent être adapté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.SaveAs chemin & Nom & ".xls"

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/09/2011, 14h12
  2. Ou est enregistré le fichier avec SELECT OUTFILE ?
    Par weed dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/08/2006, 11h15
  3. Comment sauvegarder un fichier avec choix du repertoire
    Par vantoff dans le forum C++Builder
    Réponses: 14
    Dernier message: 24/07/2006, 15h51
  4. enregistrer un fichier avec l'icone que je precise
    Par Nadirov dans le forum Débuter
    Réponses: 5
    Dernier message: 23/04/2006, 17h04
  5. Commande pour analyser un fichier avec lex et yacc
    Par gRaNdLeMuRieN dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 13/09/2005, 19h12

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