Résolu - Problème d'éxécution programme VB Express

Résolu - Problème d'éxécution programme VB Express - VB/VBA/VBS - Programmation

Marsh Posté le 08-06-2007 à 09:12:33    

Bonjour à tous,
 
j'ai un souci avec un petit programme VB Express que j'ai créé. Il s'agit d'un programme avec lequel je viens lire et écrire des données dans des feuilles Excel.
 
Je créé mon éxécutable, tout va bien. Je copie le dossier release sur le PC d'un collègue, le programme se lance sans problème, va chercher les feuilles Excel et écrit dessus, les données sont sauvegardées, tout va bien. Cependant sur d'autres PC j'ai droit au message d'erreur suivant :
 
Unhandled exception has occured in yout application. Il you click Continue, tha application will ignore this error and attempt to continue. If you click Quit, the application will close immediatly.
 
Attempted to read or write protected memory. This is often an indication that other memory is corrupt
.
 
Suit une longue descritption ou je comprend que le programme se plante quand il doit ouvrir une feuille Excel pour venir écrire dedans. La lecture se passe.  
 
Sur les 4 PC que j'ai testés, deux marchant sous Windows XP et deux sous Windows 98.  
 
J'imagine que j'ai certainement oublié certains renseignements qui pourraient vous être utiles, mais je débute dans la programmation, alors soyez indulgents !! J'espère en tout cas que vous pourrez m'aider car c'est vraiment frustrant d'être bloqué.
 
Merci d'avance en tout cas !!


Message édité par WvW le 12-06-2007 à 16:19:12
Reply

Marsh Posté le 08-06-2007 à 09:12:33   

Reply

Marsh Posté le 08-06-2007 à 09:55:58    

C'est là, en général, que la programmation devient un métier et pas juste un passe temps.
Ton problème peut être lié aux version d'Excel sur les différents postes (patchs ou service pack inclus) ou aux OS (je n'ai pas compris si le problème survient sur un OS particulier ou si c'est indifférent), ou quelquechose qui n'a rien à voir (composant système pas à jour, droits de sécurité, version de framework .NET, ...).

 

Ensuite il faut savoir si c'est dès le lancement de ton programme ou une instruction en particulier qui pose problème.
Dans ton cas tu as une indication, semble-t-il grâce au message d'erreur.
Cela te suffit-il pour deviner quelle instructions est en cause (la ligne de code précise) ?
Dans ce cas tu peux essayer de faire des tests avec un programme centré sur cette instruction.
Évidemment faire des recherches sur MSDN concernant l'instruction en cause pour voir si des bugs ne sont pas référencés sur le sujet.

 

edit: je suppose que les feuilles Excel en cause ne sont pas utilisées par ailleurs au moment de ton traitement (ça devrait faire une autre erreur mais sait-on jamais).


Message édité par tegu le 08-06-2007 à 09:58:07
Reply

Marsh Posté le 08-06-2007 à 10:25:27    

Merci pour ta réponse !!
 
Tout d'abord non, les feuilles Excel ne sont pas utilisées par ailleurs au moment de mon traitement.
 
Ensuite oui, dans le long message d'erreur une ligne de code en particulier est ciblée :
 
  Appli.Workbooks.Open(NomClasseur)
 
Appli étant déclarée de la sorte : Public Appli As New Excel.Application
 
je vais tenter d'explorer cette voie.
 
Sinon en effet le problème survient à la fois avec XP et 98  j'ajouterais que j'ai installé Framework 2.0 sur tous les PC incriminés, mais sans succés.

Reply

Marsh Posté le 08-06-2007 à 13:55:25    

Ça m'a l'air assez standard comme utilisation.
 
Les pistes que je privilégierais dans un premier temps sont la vérification des chemins d'accès (espaces dans le chemin sans guillemets autour, unités logiques réseau non mappées, que sais-je...), puis les droits d'accès sur les fichiers Excel à ouvrir.
Mais ça peut être bien autre chose que je n'imagine pas.
Si quelqu'un d'autre a une idée...
 

Reply

Marsh Posté le 08-06-2007 à 15:38:03    

toutes les versions office sont les mêmes ? j'ai eu des pb de ce type, et ca venait de la version des bibliotheques qui me plantait tout...

Reply

Marsh Posté le 12-06-2007 à 16:22:07    

Il s'agissait bien de la version d'Excel au final. J'ai créé les feuilles pour mon programme avec Excel 2002, et les postes ou le problème se posait disposaient d'Excel 2000. En installant une version plus récente d'Excel tout fonctionne parfaitement !!
 
Ca semble évident une fois que c'est résolu, mais le message d'erreur ne donnait pas vraiment d'indications... Merci à ceux qui ont pu m'accorder un peu de temps!

Reply

Marsh Posté le 12-06-2007 à 16:25:42    

petit bout de code magique sinon ;)
 

Code :
  1. Sub Main()
  2.     Dim i As Integer
  3.     Dim x As Object
  4.     Set x = ThisDocument.VBProject.References
  5.     For i = 8 To 11
  6.         On Error Resume Next
  7.         x.AddFromFile Application.Path & Application.PathSeparator & "EXCEL" & Trim(Str(i)) & ".OLB"
  8.     Next i
  9. end sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed