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 :

Enregistrer et fermer grace a un bouton


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut Enregistrer et fermer grace a un bouton
    Bonjour je souhaite suite au telechargement d'un fichier, l'enregistrer a un emplacement fixe sur mon disque dur (C:\Temp) avec un nom fixe (csv_exploit.csv)

    Pour le moment je telecharge comme ca

    Ma fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub telecharger()
    Dim strURL As String
    strURL = "http://www.cti-sud.cnamts.fr/ctisud/cpam_versions.php?fic=1"
    Workbooks.Open Filename:=strURL
    End Sub
    Mon Bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton2_Click()
    Call telecharger
    End Sub
    J'aimerais incorporer a ce meme bouton l'enregistrement et la fermeture du fichier téléchargé

  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
    Un peu de vocabulaire ce n'est pas une fonction mais une procédure, une fonction renvoie une valeur et est défini ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function(var1 as ....) as Variant
    un code a tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub telecharger()
    Dim strURL As String
    dim W as workbook
    strURL = "http://www.cti-sud.cnamts.fr/ctisud/cpam_versions.php?fic=1"
    set W = Workbooks.Open(Filename:=strURL)
    w.saveas ENVIRON("TEMP") & "\csv_exploit.csv"
    'environ permet de récupéré la variable d'environnement du fichier temporaire mais tu peu directement utiliser
    'w.saveas  "c:\Temp\csv_exploit.csv"
    w.close false
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub CommandButton2_Click()
     telecharger
    'je n'aime pas le call il force a utiliser des parenthèse qui ont un sens particulier lors d'un appelle direct
    End Sub

  3. #3
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    Ca marche par contre il faut que je laisse le Call sinon rien ne se passe

    Merci encore !

  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
    Arf trop rapide j'avais édité pour rajouté les parenthèse mais visiblement trop tard.
    Regarde la nouvelle version. Comme tu demande de renvoyer une valeur (avec le set = ) il faut les mettre. Et ne pas en mettre quand tu ne demande rien comme tu l'avais fait

  5. #5
    Membre régulier
    Inscrit en
    Août 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 10
    Par défaut
    Bon comme tu le vois sur mon post plus haut ca marche mais bien sur j'ai une autre question

    Je veux lancer une macro qui va mettre une mise en forme mon petit csv et tous cela dans ma "procédure" (tu as vu que je retient mes erreurs )

    2 questions se pose a moi

    --> Le code pour inserer une macro devrait etre le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub telecharger()
    Dim strURL As String
    Dim W As Workbook
    strURL = "http://www.cti-sud.cnamts.fr/ctisud/cpam_versions.php?fic=1"
    Set W = Workbooks.Open(Filename:=strURL)
    Application.Run "MacroMiseEnFormeCSV"
    W.SaveAs "c:\Temp\csv_exploit.csv"
    'environ permet de récupéré la variable d'environnement du fichier temporaire mais tu peu directement utiliser
    'w.saveas  "c:\Temp\csv_exploit.csv"
    W.Close False
    End Sub
    C'etait la premiere question

    Où réaliser la macro (dans quelle feuille, classeurs ou autre terme que je ne maitrise peut etre pas ...)

    Voila pour la deuxieme

  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
    Pourquoi utiliser application.run alors que juste avant tu utilisé call et que je t'ai dit que même le call est inutile?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set W = Workbooks.Open(Filename:=strURL)
    MacroMiseEnFormeCSV
    Par contre je pense que tu devrais signaler a ta macro sur quel classeur travaille et lui passer w en argument, normalement le dernier classeur ouvert est le classeur actif mais je ne sais pas comment tu compte te débrouiller au cas ou tu met

    et tu met pour ta procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sub MacroMiseEnFormeCSV(W as workbook)
    Sinon met ta macro dans un module standard

Discussions similaires

  1. Réponses: 7
    Dernier message: 23/03/2007, 00h11
  2. Réponses: 4
    Dernier message: 22/11/2006, 18h51
  3. Réponses: 37
    Dernier message: 03/10/2006, 17h34
  4. Réponses: 17
    Dernier message: 02/02/2006, 22h31
  5. [VBA-E] enregistrer et fermer en un clic
    Par christouffes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/01/2005, 18h52

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