[VB6 - Excel] Problème lors de la fermeture du fichier

Résolu
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006 - 12 avril 2006 à 15:59
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006 - 12 avril 2006 à 19:23
Bonjour tlm!

J'ai un petit probleme avec VB6 et Excel... Mon programme prend des data pour les mettres dans excel, jusque la pas de probleme... Mon probleme est lorsque je veux fermer le fichier, il me demande touojurs : Voulez-vous réellement sauvegarder?. Il ne faudrait pas qu'il me demande sa et qu'il sauvegarde automatique.. Je ne suis pas certains si cela est possible... Voici mon codes :

'Chemin du fichier a modifier à chaque installation
Dim repertoire As String
repertoire = "C:\fichier.xls"
'Ouverture de l'application
Set appexcel = New Excel.Application
'Gestion du fichier et ouverture statique
appexcel.Workbooks.Open repertoire
'Visualisation en fond d'ecran la page excel
appexcel.Visible = False

*** ICI JE RENTRE LES DATAS ***

'Fermer le fichier excel
appexcel.Workbooks.Close
'MON PROBLÈME EST ICI

Je cherche donc une facon de fermer mon fichier sans qu'il me pose la question, ou en pouvant répondre automatiquement a la question...

Merci d'avance!

6 réponses

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
12 avril 2006 à 17:21
Excuse moi, j'ai répondu trop vite :
le "appexcel.Workbooks.Close" n'a pas d'arguments.
Si tu l'utilises comme ça, il va fermer tous les fichiers Excels ouverts.

Je pense que la manière la plus propre est d'affecter un objet de type Classeur à chaque fichier que tu ouvres :

Dim l_WorkBook as Object 'As WorkBook si tu as mis Excel dans les références de ton projet)
Set l_WorkBook = appexcel.Workbooks.Open (repertoire)
...
'Exemple d'utilisation de l_Workbook : Remplit la cellule A1
l_Workbook.WorkSheets("Feuil1").Range("A1").Value = "toto"
...
'Fermet le classeur
Call l_WorkBook.Close(True)
'Quitte Excel
appexcel.Quit
3
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
12 avril 2006 à 16:08
Salut,

Il faut passer le paramètre True à la fonction Close pour qu'il force l'enregistrement. (Pour info : avec False, il ferme sans enregistrer)
Call appexcel.Workbooks.Close(True)
0
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006
12 avril 2006 à 16:19
Merci de m'avoir répondu si vite, mais j'ai essayé ce que tu m'as propossé et voici l'erreur :

Run-time error '450':
Wrong number of arguments or invalid property assigment

J'ai touver appexcel.SaveWorkspace mais sa me demande ou le saver parce que le fichier est ouvert en read-only...

Je continu a chercher, si vous pouvez m'aider sa serait très apprécier!!

Merci!
0
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006
12 avril 2006 à 19:16
Sa marche mais j'ai un petit probleme... Je dois presque absolument traiter les cases avec (1,1) au lieu de "A1" Parce que j'ai a peu pres 3000 lignes de data et environs 20 colonnes de data... Faque sa va bcps mieu gerer avec (1,1) comme je fesais au début.. Mais bon j'va essayer de regarder sa, mais si tu sais comment faire gene toi pas ;)

Merci bcps!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006
12 avril 2006 à 19:17
Finalement j'ai déja trouvé!!

l_WorkBook.Worksheets(1).Cells(1, 17).Value = "sadasdas"

sé pratiquement la meme chose que tu m'avais donné...

MERCI BCPS!!!
0
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006
12 avril 2006 à 19:23
Juste pour etre certain que si quelqu'un retombe sur le sujet, qu'il comprenne bien voici le résultat final :

'Chemin du fichier a modifier à chaque installation
Dim repertoire As String
repertoire = "C:\fichier.xls"
'Ouverture de l'application
Set appexcel = New Excel.Application


Dim l_WorkBook As Workbook 'si tu as mis Excel dans les références de ton projet)
Set l_WorkBook = appexcel.Workbooks.Open(repertoire)


'Visualisation en fond d'ecran la page excel
appexcel.Visible = False


'TRAITER DATA ICI
l_WorkBook.Worksheets(1).Cells(1, 1).Value = "Cycle number" 'un exemple


'Fermet le classeur
Call l_WorkBook.Close(True)
'Quitte Excel
appexcel.Quit

Voila Il faut que le fichier existe et que la référence pour "Microsft Excel X.0 Object Library" soit sélectionné
0
Rejoignez-nous