Regler le probleme entre vb et excel

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 470 fois - Téléchargée 32 fois

Contenu du snippet

Quelquefois on a besoin d'ecrire des données ou faire des graphes sur Excel à partir d'une appli que l'on développe en VB... J'ai du faire ça et j'ai rencontré un p'tit probleme ... la première fois tout se passe bien mais les suivantes plantait en me disant "variable de block with non définie", et un process Excel residait en mémoire... la je me suis dis que j'allais trouver la solution sur Codes Sources ...mais non seul des pleurnichards se lamentaient d'avoir trouvé un bug incontournable..., faut se sortir les doits les gars... MSDN vous connaissez ??? donc voila comment régler ce petit probleme : IL FAUT ABSOLUMENT PASSER PAR DES VARIABLES DECLAREES MANUELLEMENT et non pas par les objes direct...sinon VB utilise des instances d'objet a lui et qui sont globale a l'appli et comme elles ne sont pas déclarée sont introuvable pour les tuer...
Donc faite comme suit...

Source / Exemple :


Option Explicit

      Private Sub Command1_Click()
         Dim xlApp As Excel.Application
         Dim xlBook As Excel.Workbook
         Dim xlSheet As Excel.Worksheet
         Set xlApp = CreateObject("Excel.Application")
         Set xlBook = xlApp.Workbooks.Add
         Set xlSheet = xlBook.Worksheets("Sheet1")
         xlSheet.Range(Cells(1, 1), Cells(10, 2)).Value = "Hello"
         xlBook.Saved = True
         Set xlSheet = Nothing
         Set xlBook = Nothing
         xlApp.Quit
         Set xlApp = Nothing
      End Sub

Conclusion :


ULR MSDN : http://support.microsoft.com/default.aspx?kbid=178510
ou : http://support.microsoft.com/default.aspx?scid=kb;en-us;319832
------- tout en Anglais ...-------

A voir également

Ajouter un commentaire

Commentaires

Messages postés
12
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
8 février 2007

Je cherchais désepérement pourquoi excel continuait à tourner alors que j'avais tout fermé correctement, sans trouver mon problème.
Merci infiniment pour ces explications.

Pour abbassi_omar, tu as essayé de ne déclarer que
Dim xlApp (sans le As Excel.Application )
Dim xlBook (sans le As Excel.Workbook )
Dim xlSheet (sans le As Excel.Worksheet )
et de ne pas oublier les xlSheet. devant chaque Cell, Range et autre Rows/Columns ?
J'avais le même pb : excel qui ne se ferme pas bien. Cela a été résolu grace à ca : je peux maintenant faire 2 fois la même action, sans qu'il me dise que le serveur est introuvable ou autre erreur bizarre.
Messages postés
23
Date d'inscription
dimanche 12 novembre 2000
Statut
Membre
Dernière intervention
3 août 2007

merci pour votre aide
mais j'ai un prblm dans une application.
j'utilise un classeur exel existe pour imprimer des etats,quand j'appel le classeur pour la premier fois ca marche bien mais si je le demande pour une deuxieme fois les cellule vienne vide.
pour avoir la possibilite d'imprimer une 2eme fois il me faut quitter l'application du tout!!! et ca marche pas dans des application proff
Messages postés
106
Date d'inscription
mardi 13 juillet 2004
Statut
Membre
Dernière intervention
26 janvier 2005

Ca marche le "object is nothing" si il n'y a pas eu de "object.open" ?
A vrai dire j'ai pas pensé à essayer ...
Messages postés
140
Date d'inscription
mercredi 4 octobre 2000
Statut
Membre
Dernière intervention
12 août 2009

je n'ai pas compris ce que tu voulais dire exactement Zigarn....

Mais avec le code suivant :
If Not <Mon Objet> Is Nothing Then
' destruction des variables
End If
Messages postés
106
Date d'inscription
mardi 13 juillet 2004
Statut
Membre
Dernière intervention
26 janvier 2005

Par contre il y a toujours le problème que en cas de bug, il n'y a, semble-t-il, pas d'appel à ma procédure de fermeture et donc non fermeture de Excel. Si je le fais dans mon handler d'erreur appelé par On Error, et bien si le bug est arrivé avant l'ouverture, il me dit qu'il peut pas fermer quelque chose qui n'est pas ouvert (et je le comprends !). Y a-t-il un moyen de tester l'existence d'un objet du coup ?
Afficher les 16 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.