Visual Basic 6 avec Excel

CrystalMan Messages postés 2 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 6 janvier 2003 - 6 janv. 2003 à 16:31
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 - 18 mai 2003 à 00:59
J'utilise le code suivant pour générer et enregistrer un fichier Excel à partir d'une requête SQL SERVER :

*************************************************
Dim xlapp As Object
Dim xlbook As Object
Dim xlsheet As Object
Dim ligne As Integer
Dim col As Integer

Set xlapp = CreateObject("Excel.Application")
Set xlbook = xlapp.Workbooks.Add
Set xlsheet = xlbook.Worksheets(1)
'Set xlbook = CreateObject("Excel.Workbooks")
'Set xlsheet = CreateObject("Excel.Sheet")


'debut du traitement
With xlsheet.QueryTables.Add(Connection:= _
"ODBC;DRIVER=SQL Server;SERVER=WST106;UID=toto;PWD=toto;APP=gafa;WSID=WST103;DATABASE=GAFA" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT Vw_Database.NUM_FICHE, Vw_Database.INDIC_COORD, Vw_Database.INDIC_ANTENNE, Vw_Database.MATRICULE, Vw_Database.NOM, Vw_Database.PRENOM, Vw_Database.LIBELLE, Vw_Database.NUM_TEL_PRINC, Vw_Databas" _
, _
"e.PRENOM2, Vw_Database.NUM_TEL_SEC, Vw_Database.SEXE, Vw_Database.AGE, Vw_Database.LIBELLE_CSP, Vw_Database.CODE_EMISSION, Vw_Database.TITRE, Vw_Database.JOUR_DIFFUSION, Vw_Database.HORAIRE_DEB, Vw_Da" _
, _
"tabase.HORAIRE_FIN, Vw_Database.HORODATAGE, Vw_Database.DPTMT_APPEL, Vw_Database.SUJET, Vw_Database.CONTENU, Vw_Database.QUAL_LIAISON, Vw_Database.EXPRESSION, Vw_Database.IMPLICATION, Vw_Database.REMA" _
, _
"RQUE, Vw_Database.DUREE_TRAITEMENT, Vw_Database.NOTE" & Chr(13) & "" & Chr(10) & "FROM GAFA.dbo.Vw_Database Vw_Database" _
)
.Name = "Lancer la requête à partir de GAFA"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
xlbook.SaveAs FileName:=App.Path & "\BDGAFA.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

'fermeture des variables objets
Set xlsheet = Nothing
Set xlbook = Nothing
Set xlapp = Nothing
***********************************************

Cependant, si ce code fonctionne très bien lors de sa première utilisation, il bug lorsque on l'execute plus d'une fois, car le processus Excel.exe ne se ferme pas au niveau du gestionnaire des taches.

Aussi, est ce que quelqu'un pourrait-il me dire si mon code contient une erreur, ou bien est ce que quelqu'un pourrait me donner la commande me permettant de killer ce processus Excel.exe qui ne veut pas disparaitre.

En vous remerciant d'avance.

CrystalMan.

3 réponses

cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
6 janv. 2003 à 17:23
Set xlbook = Nothing
xlapp.quit
Set xlapp = Nothing

@++

Crazyht
0
devsurf Messages postés 148 Date d'inscription dimanche 13 octobre 2002 Statut Membre Dernière intervention 13 novembre 2008
17 mai 2003 à 11:11
Par rapport aup roblème de fermeture de EXcel, hervé a donné une solution efficace dans

http://www.vbfrance.com/forum.aspx?Article=25629

extrait:

Set selection = Nothing
Set feuille = Nothing
' On ferme tous les classeurs
for each classeur IN tableauExcel.Workbooks
classeur.close
next
set classeur = nothing

tableauExcel.Quit

Set tableauExcel = Nothing
0
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
18 mai 2003 à 00:59
lol ben wi je suis le meilleur :)

Et j'aime bien me repeter :)

A++

:-p Crazyht :)

[Admin Codes-Sources]
[Membre Developer-Association]
0
Rejoignez-nous