Probleme Excel 97, a l'aide ! [Résolu]

Messages postés
36
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juin 2008
- - Dernière réponse : 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.
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
8
3
Merci
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+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 217 internautes nous ont dit merci ce mois-ci

Commenter la réponse de bigfish_le vrai
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
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"
Commenter la réponse de mortalino
Messages postés
36
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juin 2008
0
Merci
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
Commenter la réponse de djtrefle
Messages postés
6789
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
0
Merci
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"
Commenter la réponse de mortalino
Messages postés
36
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juin 2008
0
Merci
Merci beaucoup pour vos reponses !
j'essaie ca dans une petite heure et je vous tiens au courant.
Commenter la réponse de djtrefle
Messages postés
36
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
28 juin 2008
0
Merci
Parfais ca fonctionne !!

Vous m'avez bien aider, merci

Bonne continuation
+
Commenter la réponse de djtrefle