Excel vb6 problèmes

sunry Messages postés 3 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 22 décembre 2007 - 20 déc. 2007 à 00:17
sunry Messages postés 3 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 22 décembre 2007 - 22 déc. 2007 à 19:25
    Bonjour,

Je cherche à exporter des données d'une base de données vers un fichier excel faisant office de rapport. Pour éviter trop de manipulations lors du traitement pour la mise en forme, j'ai créé un "template" qui est ouvert en lecture seule, les données sont exportées, puis le pointeur excel créé avec set est libéré, ce qui laisse le choix à l'utilisateur de l'imprimer par exemple ou l'enrregistrer sous un autre nom. Jusque là ok. Mon problème est que pour lancer deux fois de suite la routine avec différents paramètres par exemple, je suis obligé de fermer l'appli vb et la rouvrir pour relancer la routine d'export xls. En effet, la première fois cela fonctionne sans problème, la deuxième fois dés que je cherche à modifier qqch, il refuse (que ce soit un insert, modifier une police ou mettre en gras).

Je ne vois plus trop comment faire, le flag "Faire confiance au projets VB" ne saute même pas.

Pouvez-vous m'aider ?

Copie du code ouvrant le fichier "template" xls :

Tout le code qui gère ce transfert est dans un module. J'ai dû créé xls comme variable globale au module car je l'utilise partout dans ce module (une fonction qui ouvre le fichier, une qui traite les données, une qui supervise tout, une qui libère la mémoire, etc...)

Option Explicit
Private xls             As Excel.Application

Private Function fp_OpenXLS(szFile As String) As Boolean

    On Error GoTo ErrT
       
    'Declarations
   
    'Instanciation
    Set xls = New Excel.Application
   
    'Ouverture
    xls.Workbooks.Open szFile, , True
    booXLS_ISOpen = True
    fp_OpenXLS = False  'Pas d'erreur
   
    Exit Function
   
ErrT:
    booXLS_ISOpen = False
    fp_OpenXLS = True   'Erreur
    MsgBox "Erreur avec l'ouverture du fichier Excel.", vbExclamation, "Erreur"
   
End Function

Merci d'avance pour votre aide.

4 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
20 déc. 2007 à 10:33
Salut,

Essaye de mettre défois que, avant Exit function : Set Xls = Nothing

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
sunry Messages postés 3 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 22 décembre 2007
20 déc. 2007 à 12:12
Mais si je fais cela, je perds le pointeur dont j'ai besoin pour manipuler excel ailleurs, non?
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
20 déc. 2007 à 12:38
Re,

Alors essaye de le mettre en tête de procédure comme cela, comme çà, à chaque appel tu libére l'object(faut faire l'essai)

Private Function fp_OpenXLS(szFile As String) As Boolean
           On Error Resume Next
                 Set Xls = Nothing
           Err.Clear

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
sunry Messages postés 3 Date d'inscription samedi 7 février 2004 Statut Membre Dernière intervention 22 décembre 2007
22 déc. 2007 à 19:25
J'ai trouvé le problème... lorsque je manipule excel je passais par exemple par xls.cells.select puis
with selection
    .xxx
end selection

c'est ce "selection" qui fait foirer tout la deuxième fois, pourquoi je n'en sais rien mais à présent tout fonctionne...
0
Rejoignez-nous