Plantage 2 eme instance Excel

Le
mbar
Bonjour,

J'ai le code suivant :

Dim fso As Scripting.FileSystemObject
Dim fld As Scripting.Folder
Dim fle As Scripting.File
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel

On Error GoTo Fermfich

' Crer une instance du FSO
Set fso = New Scripting.FileSystemObject

If fso.FileExists("Toto.xls") Then fso.DeleteFile
("Toto.xls")

DoCmd.TransferSpreadsheet acExport, , "Toto", "Toto.xls",
True
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("Toto.xls", , False)
Set wsExcel = wbExcel.Worksheets(1)
ActiveWindow.DisplayZeros = False 'Afficher un Null la
place des valeurs zro
NbCol = NombreDeColonnes()
wsExcel.Range(Cells(1, 1), Cells(1, NbCol)).Font.Bold =
True
wbExcel.Close SaveChanges:=True
appExcel.DisplayAlerts = False
appExcel.Quit
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing


Cela fonctionne bien sur un premier passage mais j'ai une
erreur sur la ligne ActiveWindow.DisplayZeros = False
lors d'un second passage.
Pourtant je referme bien Excel et libre les variables.
Si j'enleve la ligne bloquante, cela se produit sur les
lignes suivantes.

Si quelqu'un a une ide ?
D'avance merci
Vos réponses Page 1 / 2
Trier par : date / pertinence
Jessy Sempere [MVP]
Le #5325831
Bonjour

le problème vient surement du fait que tu utilises l'objet :

activeWindows

Vu que tu définis ta feuille excel, utlises plutôt l'objet que tu as
définis au lieu d'activeWindows :

wsExcel.DisplayZeros = False

Sinon, tu peux aussi essayer :

appExcel.ActiveWindows.dis...

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" 12bca01c44319$0ec79220$
Bonjour,

J'ai le code suivant :

Dim fso As Scripting.FileSystemObject
Dim fld As Scripting.Folder
Dim fle As Scripting.File
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel

On Error GoTo Fermfich

' Créer une instance du FSO
Set fso = New Scripting.FileSystemObject

If fso.FileExists("Toto.xls") Then fso.DeleteFile
("Toto.xls")

DoCmd.TransferSpreadsheet acExport, , "Toto", "Toto.xls",
True
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("Toto.xls", , False)
Set wsExcel = wbExcel.Worksheets(1)
ActiveWindow.DisplayZeros = False 'Afficher un Null à la
place des valeurs à zéro
NbCol = NombreDeColonnes()
wsExcel.Range(Cells(1, 1), Cells(1, NbCol)).Font.Bold True
wbExcel.Close SaveChanges:=True
appExcel.DisplayAlerts = False
appExcel.Quit
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing
............

Cela fonctionne bien sur un premier passage mais j'ai une
erreur sur la ligne ActiveWindow.DisplayZeros = False
lors d'un second passage.
Pourtant je referme bien Excel et libére les variables.
Si j'enleve la ligne bloquante, cela se produit sur les
lignes suivantes.

Si quelqu'un a une idée ?
D'avance merci
mbar
Le #5325311
Re-bonjour,

Merci pour ta réponse.
Le problème ne vient pas de la car si j'enlève cette ligne
le problème se trouve sur la ligne : wsExcel.Range(Cells
(1,...........
Ce n'est pas un plantage mais une erreur trouvée mais qui
ne possède pas de description.
Je dois sortir d'Access et ré-entrer pour relancer une
instance. Ce code est lancé à partir d'un bouton de
formulaire.

D'avance merci

-----Message d'origine-----
Bonjour

le problème vient surement du fait que tu utilises
l'objet :


activeWindows

Vu que tu définis ta feuille excel, utlises plutôt
l'objet que tu as

définis au lieu d'activeWindows :

wsExcel.DisplayZeros = False

Sinon, tu peux aussi essayer :

appExcel.ActiveWindows.dis...

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" message news:

12bca01c44319$0ec79220$
Bonjour,

J'ai le code suivant :

Dim fso As Scripting.FileSystemObject
Dim fld As Scripting.Folder
Dim fle As Scripting.File
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel

On Error GoTo Fermfich

' Créer une instance du FSO
Set fso = New Scripting.FileSystemObject

If fso.FileExists("Toto.xls") Then fso.DeleteFile
("Toto.xls")

DoCmd.TransferSpreadsheet acExport, , "Toto", "Toto.xls",
True
Set appExcel = CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("Toto.xls", , False)
Set wsExcel = wbExcel.Worksheets(1)
ActiveWindow.DisplayZeros = False 'Afficher un Null à la
place des valeurs à zéro
NbCol = NombreDeColonnes()
wsExcel.Range(Cells(1, 1), Cells(1, NbCol)).Font.Bold =
True
wbExcel.Close SaveChanges:=True
appExcel.DisplayAlerts = False
appExcel.Quit
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing
.............

Cela fonctionne bien sur un premier passage mais j'ai une
erreur sur la ligne ActiveWindow.DisplayZeros = False
lors d'un second passage.
Pourtant je referme bien Excel et libére les variables.
Si j'enleve la ligne bloquante, cela se produit sur les
lignes suivantes.

Si quelqu'un a une idée ?
D'avance merci


.



Jessy Sempere [MVP]
Le #5325251
As-tu essayé ???
Si c'est oui, je viens de voir une autre erreur dans ton code...
Cells(1....
tu dois rattacher cette fonction à ton objet feuille, genre :
wsExcel.Cells(...

Voilà comment je ferais ton code (par rapport au but que j'en ai compris,
et en plus simple je pense...) :

*****************************************************
Function toto()
Dim appExcel As Excel.Application 'Application Excel

DoCmd.TransferSpreadsheet acExport, , "Toto", "Toto.xls", True
Set appExcel = CreateObject("Excel.Application")

With appExcel
'** Ouverture d'un fichier Excel
.Workbooks.Open "Toto.xls"
.Worksheets(1).Select
ActiveWindow.DisplayZeros = False
.Cells.Font.Bold = True
.ActiveWorkbook.Close SaveChanges:=True
.DisplayAlerts = False
.Quit
End With
Set appExcel = Nothing
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
mbar
Le #5325001
Merci,

J'ai repris ton code mais j'ai le même problème.
La deuxième fois il me dit "permission refusée" et
n'applique pas les modifs. Il ouvre Excel mais m'informe
que le fichier est ouvert par l'administrateur et je ne
peux l'ouvrir qu'en lecture seule.
Je pense qu'Excel ouvre le fichier pour appliquer les
modifs une première fois mais lorsque qu'il ferme, il ne
doit pas fermer le fichier et cela gène le deuxième
passage non ?

D'avance merci
-----Message d'origine-----
As-tu essayé ???
Si c'est oui, je viens de voir une autre erreur dans ton
code...

Cells(1....
tu dois rattacher cette fonction à ton objet feuille,
genre :

wsExcel.Cells(...

Voilà comment je ferais ton code (par rapport au but que
j'en ai compris,

et en plus simple je pense...) :

*****************************************************
Function toto()
Dim appExcel As Excel.Application 'Application Excel

DoCmd.TransferSpreadsheet acExport, , "Toto", "Toto.xls",
True

Set appExcel = CreateObject("Excel.Application")

With appExcel
'** Ouverture d'un fichier Excel
.Workbooks.Open "Toto.xls"
.Worksheets(1).Select
ActiveWindow.DisplayZeros = False
.Cells.Font.Bold = True
.ActiveWorkbook.Close SaveChanges:=True
.DisplayAlerts = False
.Quit
End With
Set appExcel = Nothing
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.



Jessy Sempere [MVP]
Le #5324901
Re,

As-tu regarder dans tes processus en cours, il doit je suppose
rester le processus Excel.exe ???

Sinon, essais de mettre la ligne .DisplayAlerts = False
avant la fermeture de ton classeur...

Sinon retire la pour qu'excel puisse te dire quel problème il rencontre
lors de la fermeture...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" 1331801c443ca$831fa340$
Merci,

J'ai repris ton code mais j'ai le même problème.
La deuxième fois il me dit "permission refusée" et
n'applique pas les modifs. Il ouvre Excel mais m'informe
que le fichier est ouvert par l'administrateur et je ne
peux l'ouvrir qu'en lecture seule.
Je pense qu'Excel ouvre le fichier pour appliquer les
modifs une première fois mais lorsque qu'il ferme, il ne
doit pas fermer le fichier et cela gène le deuxième
passage non ?

D'avance merci
-----Message d'origine-----
As-tu essayé ???
Si c'est oui, je viens de voir une autre erreur dans ton
code...

Cells(1....
tu dois rattacher cette fonction à ton objet feuille,
genre :

wsExcel.Cells(...

Voilà comment je ferais ton code (par rapport au but que
j'en ai compris,

et en plus simple je pense...) :

*****************************************************
Function toto()
Dim appExcel As Excel.Application 'Application Excel

DoCmd.TransferSpreadsheet acExport, , "Toto", "Toto.xls",
True

Set appExcel = CreateObject("Excel.Application")

With appExcel
'** Ouverture d'un fichier Excel
.Workbooks.Open "Toto.xls"
.Worksheets(1).Select
ActiveWindow.DisplayZeros = False
.Cells.Font.Bold = True
.ActiveWorkbook.Close SaveChanges:=True
.DisplayAlerts = False
.Quit
End With
Set appExcel = Nothing
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.



mbar
Le #5324491
Re,

Avant de lancer la fonction, il n'y a pas de process Excel
qui tourne. Par contre, au moment du problème, il y a bien
un process Excel qui tourne mais je pense que cela est
normal car il est passé par Set appExcel = CreateObject
("Excel.Application") avant. J'ai un message qui dit "Le
serveur distant n'existe pas ou n'est pas disponible".
Doit-on attendre un certain temps avant de relancer une
instance ?

@+

Michel
-----Message d'origine-----
Re,

As-tu regarder dans tes processus en cours, il doit je
suppose

rester le processus Excel.exe ???

Sinon, essais de mettre la ligne .DisplayAlerts = False
avant la fermeture de ton classeur...

Sinon retire la pour qu'excel puisse te dire quel
problème il rencontre

lors de la fermeture...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" message news:

1331801c443ca$831fa340$
Merci,

J'ai repris ton code mais j'ai le même problème.
La deuxième fois il me dit "permission refusée" et
n'applique pas les modifs. Il ouvre Excel mais m'informe
que le fichier est ouvert par l'administrateur et je ne
peux l'ouvrir qu'en lecture seule.
Je pense qu'Excel ouvre le fichier pour appliquer les
modifs une première fois mais lorsque qu'il ferme, il ne
doit pas fermer le fichier et cela gène le deuxième
passage non ?

D'avance merci
-----Message d'origine-----
As-tu essayé ???
Si c'est oui, je viens de voir une autre erreur dans ton
code...

Cells(1....
tu dois rattacher cette fonction à ton objet feuille,
genre :

wsExcel.Cells(...

Voilà comment je ferais ton code (par rapport au but que
j'en ai compris,

et en plus simple je pense...) :

*****************************************************
Function toto()
Dim appExcel As Excel.Application 'Application Excel

DoCmd.TransferSpreadsheet acExport, , "Toto", "Toto.xls",
True

Set appExcel = CreateObject("Excel.Application")

With appExcel
'** Ouverture d'un fichier Excel
.Workbooks.Open "Toto.xls"
.Worksheets(1).Select
ActiveWindow.DisplayZeros = False
.Cells.Font.Bold = True
.ActiveWorkbook.Close SaveChanges:=True
.DisplayAlerts = False
.Quit
End With
Set appExcel = Nothing
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




.




Jessy Sempere [MVP]
Le #5324471
Oui mais après avoir lancé une fois la fonction, est-ce que le process
disparaît ???

Sinon, non il n'y a pas besoin d'attendre avant de relance une autre
instance...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" 139d101c443f1$98072180$
Re,

Avant de lancer la fonction, il n'y a pas de process Excel
qui tourne. Par contre, au moment du problème, il y a bien
un process Excel qui tourne mais je pense que cela est
normal car il est passé par Set appExcel = CreateObject
("Excel.Application") avant. J'ai un message qui dit "Le
serveur distant n'existe pas ou n'est pas disponible".
Doit-on attendre un certain temps avant de relancer une
instance ?

@+

Michel
-----Message d'origine-----
Re,

As-tu regarder dans tes processus en cours, il doit je
suppose

rester le processus Excel.exe ???

Sinon, essais de mettre la ligne .DisplayAlerts = False
avant la fermeture de ton classeur...

Sinon retire la pour qu'excel puisse te dire quel
problème il rencontre

lors de la fermeture...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" message news:

1331801c443ca$831fa340$
Merci,

J'ai repris ton code mais j'ai le même problème.
La deuxième fois il me dit "permission refusée" et
n'applique pas les modifs. Il ouvre Excel mais m'informe
que le fichier est ouvert par l'administrateur et je ne
peux l'ouvrir qu'en lecture seule.
Je pense qu'Excel ouvre le fichier pour appliquer les
modifs une première fois mais lorsque qu'il ferme, il ne
doit pas fermer le fichier et cela gène le deuxième
passage non ?

D'avance merci
-----Message d'origine-----
As-tu essayé ???
Si c'est oui, je viens de voir une autre erreur dans ton
code...

Cells(1....
tu dois rattacher cette fonction à ton objet feuille,
genre :

wsExcel.Cells(...

Voilà comment je ferais ton code (par rapport au but que
j'en ai compris,

et en plus simple je pense...) :

*****************************************************
Function toto()
Dim appExcel As Excel.Application 'Application Excel

DoCmd.TransferSpreadsheet acExport, , "Toto", "Toto.xls",
True

Set appExcel = CreateObject("Excel.Application")

With appExcel
'** Ouverture d'un fichier Excel
.Workbooks.Open "Toto.xls"
.Worksheets(1).Select
ActiveWindow.DisplayZeros = False
.Cells.Font.Bold = True
.ActiveWorkbook.Close SaveChanges:=True
.DisplayAlerts = False
.Quit
End With
Set appExcel = Nothing
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




.




mbar
Le #5324381
Non, il est présent. Pourtant je fais bien appExcel.quit !
@+
Michel
-----Message d'origine-----
Oui mais après avoir lancé une fois la fonction, est-ce
que le process

disparaît ???

Sinon, non il n'y a pas besoin d'attendre avant de
relance une autre

instance...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" message news:

139d101c443f1$98072180$
Re,

Avant de lancer la fonction, il n'y a pas de process Excel
qui tourne. Par contre, au moment du problème, il y a bien
un process Excel qui tourne mais je pense que cela est
normal car il est passé par Set appExcel = CreateObject
("Excel.Application") avant. J'ai un message qui dit "Le
serveur distant n'existe pas ou n'est pas disponible".
Doit-on attendre un certain temps avant de relancer une
instance ?

@+

Michel
-----Message d'origine-----
Re,

As-tu regarder dans tes processus en cours, il doit je
suppose

rester le processus Excel.exe ???

Sinon, essais de mettre la ligne .DisplayAlerts = False
avant la fermeture de ton classeur...

Sinon retire la pour qu'excel puisse te dire quel
problème il rencontre

lors de la fermeture...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" message news:

1331801c443ca$831fa340$
Merci,

J'ai repris ton code mais j'ai le même problème.
La deuxième fois il me dit "permission refusée" et
n'applique pas les modifs. Il ouvre Excel mais m'informe
que le fichier est ouvert par l'administrateur et je ne
peux l'ouvrir qu'en lecture seule.
Je pense qu'Excel ouvre le fichier pour appliquer les
modifs une première fois mais lorsque qu'il ferme, il ne
doit pas fermer le fichier et cela gène le deuxième
passage non ?

D'avance merci
-----Message d'origine-----
As-tu essayé ???
Si c'est oui, je viens de voir une autre erreur dans ton
code...

Cells(1....
tu dois rattacher cette fonction à ton objet feuille,
genre :

wsExcel.Cells(...

Voilà comment je ferais ton code (par rapport au but que
j'en ai compris,

et en plus simple je pense...) :

*****************************************************
Function toto()
Dim appExcel As Excel.Application 'Application Excel

DoCmd.TransferSpreadsheet
acExport, , "Toto", "Toto.xls",



True
Set appExcel = CreateObject("Excel.Application")

With appExcel
'** Ouverture d'un fichier Excel
.Workbooks.Open "Toto.xls"
.Worksheets(1).Select
ActiveWindow.DisplayZeros = False
.Cells.Font.Bold = True
.ActiveWorkbook.Close SaveChanges:=True
.DisplayAlerts = False
.Quit
End With
Set appExcel = Nothing
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




.




.





Le #5323761
Bonjour, me revoilou

J'ai repris bêtement ton code mais je n'avais pas remarqué
qu'il manquait un point devant ActiveWindow.DisplayZeros =
False. Maintenant cela fonctionne mais je n'arrive pas à
faire ce que je veux.
Dès que je veux remplacer : .Cells.Font.Bold = True
par .Range(Cells(1, 1), Cells(1, 35)).Font.Bold = True
cela ne fonctionne plus (Je veux du Bold uniquement sur la
ligne des titres).
Comment faire pour faire un Autofit sur toutes les
cellules ?

D'avance merci


-----Message d'origine-----
Non, il est présent. Pourtant je fais bien appExcel.quit !
@+
Michel
-----Message d'origine-----
Oui mais après avoir lancé une fois la fonction, est-ce
que le process

disparaît ???

Sinon, non il n'y a pas besoin d'attendre avant de
relance une autre

instance...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" message news:

139d101c443f1$98072180$
Re,

Avant de lancer la fonction, il n'y a pas de process
Excel


qui tourne. Par contre, au moment du problème, il y a
bien


un process Excel qui tourne mais je pense que cela est
normal car il est passé par Set appExcel = CreateObject
("Excel.Application") avant. J'ai un message qui dit "Le
serveur distant n'existe pas ou n'est pas disponible".
Doit-on attendre un certain temps avant de relancer une
instance ?

@+

Michel
-----Message d'origine-----
Re,

As-tu regarder dans tes processus en cours, il doit je
suppose

rester le processus Excel.exe ???

Sinon, essais de mettre la ligne .DisplayAlerts = False
avant la fermeture de ton classeur...

Sinon retire la pour qu'excel puisse te dire quel
problème il rencontre

lors de la fermeture...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" message news:

1331801c443ca$831fa340$
Merci,

J'ai repris ton code mais j'ai le même problème.
La deuxième fois il me dit "permission refusée" et
n'applique pas les modifs. Il ouvre Excel mais m'informe
que le fichier est ouvert par l'administrateur et je ne
peux l'ouvrir qu'en lecture seule.
Je pense qu'Excel ouvre le fichier pour appliquer les
modifs une première fois mais lorsque qu'il ferme, il ne
doit pas fermer le fichier et cela gène le deuxième
passage non ?

D'avance merci
-----Message d'origine-----
As-tu essayé ???
Si c'est oui, je viens de voir une autre erreur dans
ton




code...
Cells(1....
tu dois rattacher cette fonction à ton objet feuille,
genre :

wsExcel.Cells(...

Voilà comment je ferais ton code (par rapport au but
que




j'en ai compris,
et en plus simple je pense...) :

*****************************************************
Function toto()
Dim appExcel As Excel.Application 'Application Excel

DoCmd.TransferSpreadsheet
acExport, , "Toto", "Toto.xls",



True
Set appExcel = CreateObject("Excel.Application")

With appExcel
'** Ouverture d'un fichier Excel
.Workbooks.Open "Toto.xls"
.Worksheets(1).Select
ActiveWindow.DisplayZeros = False
.Cells.Font.Bold = True
.ActiveWorkbook.Close SaveChanges:=True
.DisplayAlerts = False
.Quit
End With
Set appExcel = Nothing
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




.




.

.







Jessy Sempere [MVP]
Le #5323671
Bonjour

Si tu veux mettre la première ligne en gras, tu peux faire :

.Rows("1:1").Font.Bold = True

(n'oublie pas le point avant...)

Sinon pour l'autofit, il te suffit de faire :

.Cells.Autofit

Voilà
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
1411301c44480$945d6d70$
Bonjour, me revoilou

J'ai repris bêtement ton code mais je n'avais pas remarqué
qu'il manquait un point devant ActiveWindow.DisplayZeros False. Maintenant cela fonctionne mais je n'arrive pas à
faire ce que je veux.
Dès que je veux remplacer : .Cells.Font.Bold = True
par .Range(Cells(1, 1), Cells(1, 35)).Font.Bold = True
cela ne fonctionne plus (Je veux du Bold uniquement sur la
ligne des titres).
Comment faire pour faire un Autofit sur toutes les
cellules ?

D'avance merci


-----Message d'origine-----
Non, il est présent. Pourtant je fais bien appExcel.quit !
@+
Michel
-----Message d'origine-----
Oui mais après avoir lancé une fois la fonction, est-ce
que le process

disparaît ???

Sinon, non il n'y a pas besoin d'attendre avant de
relance une autre

instance...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" message news:

139d101c443f1$98072180$
Re,

Avant de lancer la fonction, il n'y a pas de process
Excel


qui tourne. Par contre, au moment du problème, il y a
bien


un process Excel qui tourne mais je pense que cela est
normal car il est passé par Set appExcel = CreateObject
("Excel.Application") avant. J'ai un message qui dit "Le
serveur distant n'existe pas ou n'est pas disponible".
Doit-on attendre un certain temps avant de relancer une
instance ?

@+

Michel
-----Message d'origine-----
Re,

As-tu regarder dans tes processus en cours, il doit je
suppose

rester le processus Excel.exe ???

Sinon, essais de mettre la ligne .DisplayAlerts = False
avant la fermeture de ton classeur...

Sinon retire la pour qu'excel puisse te dire quel
problème il rencontre

lors de la fermeture...

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" message news:

1331801c443ca$831fa340$
Merci,

J'ai repris ton code mais j'ai le même problème.
La deuxième fois il me dit "permission refusée" et
n'applique pas les modifs. Il ouvre Excel mais m'informe
que le fichier est ouvert par l'administrateur et je ne
peux l'ouvrir qu'en lecture seule.
Je pense qu'Excel ouvre le fichier pour appliquer les
modifs une première fois mais lorsque qu'il ferme, il ne
doit pas fermer le fichier et cela gène le deuxième
passage non ?

D'avance merci
-----Message d'origine-----
As-tu essayé ???
Si c'est oui, je viens de voir une autre erreur dans
ton




code...
Cells(1....
tu dois rattacher cette fonction à ton objet feuille,
genre :

wsExcel.Cells(...

Voilà comment je ferais ton code (par rapport au but
que




j'en ai compris,
et en plus simple je pense...) :

*****************************************************
Function toto()
Dim appExcel As Excel.Application 'Application Excel

DoCmd.TransferSpreadsheet
acExport, , "Toto", "Toto.xls",



True
Set appExcel = CreateObject("Excel.Application")

With appExcel
'** Ouverture d'un fichier Excel
.Workbooks.Open "Toto.xls"
.Worksheets(1).Select
ActiveWindow.DisplayZeros = False
.Cells.Font.Bold = True
.ActiveWorkbook.Close SaveChanges:=True
.DisplayAlerts = False
.Quit
End With
Set appExcel = Nothing
End Function
*****************************************************

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------


.




.




.

.







Publicité
Poster une réponse
Anonyme