begin process at 2012 02 16 00:54:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

Débutants

 > 

VBA Excel, problème peu commun


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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 ...

1 2 3

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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales