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 :

comment utiliser un programme comme une fonction dans une macro exel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Par défaut comment utiliser un programme comme une fonction dans une macro exel
    Salut
    je veux programmer une macro en vba . la macro doit
    1- enregistrer les differentes feuille de mon classeur en ficher txt
    2- ouvrir ces fichers a l aide d un programme (PHREEQC) et recuperer le resultat effectuer par ce programme(PHREEQC :ce programm a ete code en c) .
    mon probleme est le suivant :
    est t il possible de relier ce programm a vba comme on le fait avec VB et Matlab? ou encore d utiliser les commandes dos dans une macro excel?

    merci d avance

  2. #2
    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
    Par défaut
    1 - Oui, ce n'est pas un pb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Chemin = "D:\Mes docs\"
    NomFich = "FichierText.txt"
    Worksheets(LaFeuille).activate 'n'enregistre que la feuille active
        ActiveWorkbook.SaveAs Filename:=Chemin & NomFich, FileFormat _
            :=xlText, CreateBackup:=False
    Le séparateur de données sera une tabulation.

    2 - Si le programme en c prévoit les paramètres, c'est possible. Par commande dos, ces trois syntaxes fonctionnent (sous Vista, je ne sais pas...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Call Shell("cmd /c Notepad.exe d:\doc\txt.txt")
    r = Shell("cmd /c Notepad.exe d:\doc\txt.txt")
    Shell "cmd /c Notepad.exe d:\doc\txt.txt"
    Ouvre le fichier dans NotePad

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 52
    Par défaut
    Salut
    je m escuse d avoir mi si long avant de repondre.
    je reussie a lancer mon programme et importer les valeur dans ce programme a l aide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Shell("cmd /c Notepad.exe d:\doc\txt.txt")
    mais je suis confronter a un nouveau probleme :
    je suis obliger de cliquer sur "execute" pour executer mes calcules or mon but est d ecrire un code Vb qui manipule mon programme de calcul (phreeqc) et donne automatiquement les resultats.
    je me suis faire fournir la version dos du programme et la on me demande :
    -d entrer "input file"
    - ensuite d entrer "output file"
    et le programme s execute automatiquement .

    j aimerais savoir s il est possible d ecrire un code en vb qui manipule les comandes dos ?

  4. #4
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    est-ce que ta DLL en C a des points d'appel pour être utilisée comme une API ?

    un exemple avec la DLL faite par Arkham :
    http://arkham46.developpez.com/artic...usewheelnoreg/

  5. #5
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    Bonsoir
    S'il existe un raccourcis clavier pour "execute",
    tu peux peut être essayer un SendKeys.

    Pas très élégant mais peut dépanner en attendant de trouver mieux.

    Salutations

  6. #6
    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
    Par défaut
    Citation Envoyé par ERICKO
    j aimerais savoir s il est possible d ecrire un code en vb qui manipule les commandes dos ?
    Ce code est celui qu'on t'a passé. Ce que tu demandes est un code qui réponde à une commande dos, et là ???
    Shell "cmd /c Echo Input file" affiche Input file sur la ligne de commande. Quant à répondre "Input file" à un programme dos...
    Désolé

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. Comment utiliser une fonction dans une fonction
    Par hatenaku dans le forum Langage
    Réponses: 3
    Dernier message: 19/04/2008, 20h00
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  5. Réponses: 4
    Dernier message: 15/08/2007, 22h05

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