Accueil > Forum > > > > VBA Excel, problème peu commun
VBA Excel, problème peu commun
mardi 24 février 2009 à 14:02:36 |
VBA Excel, problème peu commun

Yunchi
|
Bonjour, Je vais essayer d'exposer mon problème clairement :) En gros : J'ai un dossier dans lequel j'ai un xls, un exe et un txt. L'exe est un programme codé en C qui ouvre le txt, l'analyse et crée un autre fichier txt avec des statistiques. Quand je double click sur l'exe, tout se passe normalement et analyse le fichier texte et fait son boulot. Dans mon xls, j'ai une macro qui lance l'exe via : [CODE]Path = Workbooks("Simulateur_RRC.xls").Path RetVal = Shell(Path + "\" + "file_analyzer.exe", 1) Windows("Simulateur_RRC.xls").Activate[/CODE] Et quand je click sur le bouton, ça lance bien mon exe mais l'exe ne fait pas ce qu'il faut. On arrive directement en fin de l'exe et il ne fait pas son boulot. Plus de détails : L'exe en gros : if (fichier = fopen("nom.txt","r")) { analyse .... affichage avancement ... fclose(fichier); } printf("info..."); system("PAUSE"); Donc : quand je double click sur l'exe : je sais que tout se passe bien grâce aux infos sur l'avancement de l'analyse quand je lance mon exe via VB, j'ai juste le printf("info"); et le system("PAUSE"); de la fin mais bien sur les infos affichés sont vides. Bref je comprends vraiment et en essayant avec un autre exe basique qui affiche des nombres aléatoires, tout marche très bien ... Voilà s'il y'a quelqu'un qui connait ce problème ou un spécialiste de VB .... Merci
|
|
mardi 24 février 2009 à 14:09:32 |
Re : VBA Excel, problème peu commun

Renfield
|
concatène pas avec +
ActiveWorkbook.Path suffit ^^
enfin, ici, on attend pas la fin de l'execution de l'exe externe, c'est peut etre voulu.
mais le soucis, pour moi, c'est que tu précise pas le Working directory...
fopen("nom.txt","r"))
|
|
mardi 24 février 2009 à 14:29:58 |
Re : VBA Excel, problème peu commun

Yunchi
|
Ah peux-tu développer le "enfin, ici, on attend pas la fin de l'execution de l'exe externe, c'est peut etre voulu. " stp ?
Pour le code en C j'ai tapé juste quelques lignes pour expliquer le principe mais c'est un peu plus complexe dedans :)
|
|
mardi 24 février 2009 à 14:33:07 |
Re : VBA Excel, problème peu commun

Renfield
|
Réponse acceptée !
le Shell démarre l'exe et rend la main a ta macro.
le programme lancé lui, n'a pas encore finit de tourner.
voir
http://www.vbfrance.com/codes/SHELLANDWAIT-EXECUTER-APPLICATION-ATTENDRE-FIN-RENVOYER-SON-CODE_34867.aspx
|
|
mardi 24 février 2009 à 14:54:40 |
Re : VBA Excel, problème peu commun

Yunchi
|
J'ai essayé d'incorporer ta fonction à mon fichier excel mais je ne sais pas trop comment faire en fait ...
J'ai tout copier coller dans un module et en testant avec ExecCmd "P:\Excel simulateur RRC\file_analyzer.exe", j'ai une petite erreur ... il me dit que seul les commentaires peuvent apparaitre après les End Sub
Ca concerne les lignes :
Public Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long Public Declare Function GetExitCodeProcess Lib "kernel32.dll" (ByVal hProcess As Long, ByRef lpExitCode As Long) As Long Public Declare Function ShellExecuteEx Lib "shell32.dll" (ByRef lpExecInfo As SHELLEXECUTEINFOA) As Long Public Declare Function WaitForSingleObject Lib "kernel32.dll" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Je pense que ça doit être comme des déclarations de prototypes en C mais je ne sais pas où les mettre par contre : /
|
|
mardi 24 février 2009 à 14:58:04 |
Re : VBA Excel, problème peu commun

Yunchi
|
euh idem pour la fonction ShellExecute, je ne sais pas où mettre
Declare Function ShellExecute Lib "Shell"(hWnd As Integer, lpszOp As String, lpszFile As String, lpszParams As String, lpszDir As String, fsShowCmd As Integer) As Integer Declare Function FindWindow Lib "User"(lpClassName$, lpWindowName As Long) As Integer
|
|
mardi 24 février 2009 à 15:11:11 |
Re : VBA Excel, problème peu commun

Renfield
|
Réponse acceptée !
les declarations sont a placer tout en haut de ton module
|
|
mardi 24 février 2009 à 15:23:20 |
Re : VBA Excel, problème peu commun

Yunchi
|
Merci pour tes réponses
Suite à ce que j'ai compris, j'ai mis ça :
Sub analyser_fichier() Declare Function ShellExecute Lib "Shell" (hWnd As Integer, lpszOp As String, lpszFile As String, lpszParams As String, lpszDir As String, fsShowCmd As Integer) As Integer Declare Function FindWindow Lib "User" (lpClassName$, lpWindowName As Long) As Integer
hWnd = FindWindow("OPUSAPP", 0) X = ShellExecute(hWnd, "Open", "P:\Excel simulateur RRC\file_analyzer.exe", "", "", 1)
End Sub
Par contre quand je lance, j'ai de nouveau le même message disant que seuls les commentaires peuvent apparaitre après les End machin :(
|
|
mardi 24 février 2009 à 15:26:42 |
Re : VBA Excel, problème peu commun

Renfield
|
Réponse acceptée !
les declarations sont a placer tout en haut de ton module
donc ça
Declare Function ShellExecute Lib "Shell" (hWnd As Integer, lpszOp As String, lpszFile As String, lpszParams As String, lpszDir As String, fsShowCmd As Integer) As Integer
Declare Function FindWindow Lib "User" (lpClassName$, lpWindowName As Long) As Integer
n'a rien a faire là.
place les haut dessus de la première Sub ou Function de ton module
|
|
mardi 24 février 2009 à 15:38:25 |
Re : VBA Excel, problème peu commun

Yunchi
|
ah ok :)
j'ai déplacé les declare en haut et je n'ai plus la même erreur mais quand j'exécute je pense que il y'a un problème avec
hWnd = FindWindow("OPUSAPP", 0) X = ShellExecute(hWnd, "Open", "P:\Excel simulateur RRC\file_analyzer.exe", "", "", 1)
J'ai essayer de changer le paramètre "OPUSAPP" par le nom de la feuille ou du fichier xls mais ça ne change pas ...
j'ai une erreur disant que le fichier User est introuvable ...
|
|
Cette discussion est classée dans : exe, problème, txt, xls, analyse
Répondre à ce message
Sujets en rapport avec ce message
SVP : pas d'erreur quand teste de l'appli dans VB, mais problème lors de l'execution en exe [ par dfeyer ]
Certain de mes formulaires qui s'execute sans problème quand je teste l'application sous VisualBasic, mais dès que je compile un exe et que je l'execu
problème .EXE [ par mars ]
Mon programme tourne en mode exécution sous vb6 ; mais le .exe généré à partir de celui-ci plante ("erreur non reconnue"). Comment remédier à ce probl
Paramètres [ par Chuck ]
Jvoudrais que quand un utilisateur lance mon logiciel (VB compiler en exe) avec des parramètres, ce logiciel en prenne compte, par exemple :si toto.ex
Problème avec Open "" for output as [ par bonjour ]
Jai un problème avec la fonction suivante:open "c:\windows\salut.txt" for output as #1print #1, "salut toi"close #1Lorsque je fait sa, dans le fichier
Problème avec VB6FR.DLL [ par Filou07 ]
J'ai créé un petit exe de rien du tout qui fonctionne bien, mais sur certaines machines (du genre équipées de NT4), windows me jette en me disant que
Problème avec le fichier SETUP1.EXE [ par luc91 ]
bonjour,lors de l'install d'un soft développé en VB6, j'ai le message "le fichier c:\windows\setup1.exe semble endommagé.Réinstallez le puis essayez d
Problème pour exporter plusieurs requêtes dans un même fichier xls [ par trabetjp42 ]
Est il possible d'exporter des données d'une requête dans un fichier excel puis d'exécuter à nouveau celle-ci et d'ajouter les nouvelles données à la
Urgent : Pb nom de fichiers avec macros excel [ par jo1980 ]
Etant débutant dans l'utilisation et la création de macros sous excel je rencontre la difficuté suivante :Dans un répertoire dont je connais le chemin
Problème avec la lecture.. [ par spliter ]
dans mon programme que je fais, lorsque la feuille load je lis dans mon fichier projet3.txt et ensuite c'est afficher dans un textbox.Mais quand c'est
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
ACCES ODBCACCES ODBC par yannickcottin
Cliquez pour lire la suite par yannickcottin
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|