Probleme Excel 97, a l'aide !

Résolu
djtrefle Messages postés 36 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 juin 2008 - 21 mai 2008 à 12:34
djtrefle Messages postés 36 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 juin 2008 - 22 mai 2008 à 11:31
Bonjour,
j'ai un souci avec Excel 97. Je sais, c'est vieux mais j'ai pas le choix c'est pour une entreprise.
En fait a partir de VB6 j'ecris des donnes dans un classeur excel que je sauvegarde quand toutes mes donnes y sont placees.

Mon programme marche bien mais le probleme c'est que si j'ouvre un fichier excel (sans passer par VB, juste en double cliquant sur un fichier *.xls depuis l'explorateur windows) alors le fichier selectionner s'ouvre (logique) mais VB qui etait en train d'ecrire dans un classeur (qui etait cache : appExcel.Visible = False) se met alors a ecicre dans le fichier que je viens d'ouvrir.

Je sais pas si c'est bien clair mais en tout cas ca m'ennuie drolement.
Si quelqu'un a une idee.

Merci d'avance.

6 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
21 mai 2008 à 15:40
Salut,

voici une solution que j'ai deja donné en reponse a un probleme similaire :

si je ne me trompe pas ton probleme n'existe que dans le
cas ou un utilisateur double clique sur un fichier excel. Dans ce cas
le fichier s'ouvre dans la session deja existante. Par contre si tu
ouvres excel a partir de l'exe via un racourci une nouvelle session
excel sera créée et dans ce cas tes fichier reste cahés dans la session
deja existante.

Donc ceci devrait t'aider :

Application.IgnoreRemoteRequests = True

la propriete  IgnoreRemoteRequests
permet de privatiser ton instance ce qui oblige windows a relancer un
nouvelle instance lors d'un double clique sur un fichier lier a l'exe .
Attention de ne pas oublier de repasser a false avant fermer ton
instance

Par contre j'ai essayé de voir si cela peut fonctionner avec XL97, a priori oui, mais cela reste a confirmer.

A+
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 mai 2008 à 14:04
salut,

vérifie (au cas où) qu'il n'i ait aucune instruction dans l'évènement Open de ton classeur.
Comment procèdes-tu pour écrire dans ton fichier depuis vb6 ? (et comment tu fermes ce fichioer ?)

@++

le mystérieux chevalier,"Provençal, le gaulois"
0
djtrefle Messages postés 36 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 juin 2008
21 mai 2008 à 15:10
Salut, merci de m'aider.

Alors voila comment je l'ouvre :

Dim appExcel As Excel.Application

Set appExcel = CreateObject("Excel.Application")
appExcel.Workbooks.add
CurSheet = 1
appExcel.Sheets(CurSheet).Select
appExcel.DisplayAlerts = False
appExcel.Visible = False

pour y mettre des valeurs :
Dim variable as String
appExcel.ActiveCell.Value = Variable

pour sauvegarder et fermer :
appExcel.ActiveWorkbook.SaveAs FileName:=sFile, FileFormat:=xlNormal, Password:="", _
WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False

appExcel.ActiveWorkbook.Close
appExcel.Quit
Set appExcel = Nothing

J'espere que tu pourras m'aider car j'ai vraiment aucune idee !
Merci
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
21 mai 2008 à 15:18
essaie peut-être comme ceci, mais je ne te garantis rien :

    Dim appExcel As Excel.Application
    Dim bookExcel As Excel.Workbook
    'on va, au cas où référencer le classeur pour écrire dedans,
afin d'éviter confusions

    'Set appExcel =
CreateObject("Excel.Application")
    ' il ne faut
pas passer par createobject, il sert à creer des liaisons
tardives.
    
    Set appExcel = New Excel.Application
    Set bookExcel = appExcel.Workbooks.Add
    
    appExcel.DisplayAlerts = False
    appExcel.Visible = False
    
    CurSheet = 1
    bookExcel.Sheets(CurSheet).Select

'pour y mettre des valeurs :
    Dim variable As String
    bookExcel.ActiveCell.Value = variable

'pour sauvegarder et fermer :
    bookExcel.SaveAs Filename:=sFile, FileFormat:=xlNormal,
Password:="", _
WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False

    bookExcel.Close
    appExcel.Quit
    Set bookExcel = Nothing
    Set appExcel = Nothing

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

le mystérieux chevalier,"Provençal, le gaulois"
0

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

Posez votre question
djtrefle Messages postés 36 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 juin 2008
22 mai 2008 à 10:28
Merci beaucoup pour vos reponses !
j'essaie ca dans une petite heure et je vous tiens au courant.
0
djtrefle Messages postés 36 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 28 juin 2008
22 mai 2008 à 11:31
Parfais ca fonctionne !!

Vous m'avez bien aider, merci

Bonne continuation
+
0
Rejoignez-nous