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=E9er une instance du FSO
Set fso =3D New Scripting.FileSystemObject
If fso.FileExists("Toto.xls") Then fso.DeleteFile=20
("Toto.xls")
=20
DoCmd.TransferSpreadsheet acExport, , "Toto", "Toto.xls",=20
True
Set appExcel =3D CreateObject("Excel.Application")
'Ouverture d'un fichier Excel
Set wbExcel =3D appExcel.Workbooks.Open("Toto.xls", , False)
Set wsExcel =3D wbExcel.Worksheets(1)
ActiveWindow.DisplayZeros =3D False 'Afficher un Null =E0 la=20
place des valeurs =E0 z=E9ro
NbCol =3D NombreDeColonnes()
wsExcel.Range(Cells(1, 1), Cells(1, NbCol)).Font.Bold =3D=20
True
wbExcel.Close SaveChanges:=3DTrue
appExcel.DisplayAlerts =3D False
appExcel.Quit
Set wsExcel =3D Nothing
Set wbExcel =3D Nothing
Set appExcel =3D Nothing
............
Cela fonctionne bien sur un premier passage mais j'ai une=20
erreur sur la ligne ActiveWindow.DisplayZeros =3D False =20
lors d'un second passage.
Pourtant je referme bien Excel et lib=E9re les variables.
Si j'enleve la ligne bloquante, cela se produit sur les=20
lignes suivantes.
Je te remercie vivement pour ton aide. A plus, Michel
-----Message d'origine----- 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/ ------------------------------------ a écrit dans le message news:
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" a écrit dans le 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" a écrit dans le 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
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/ ------------------------------------
.
.
.
.
.
Je te remercie vivement pour ton aide.
A plus,
Michel
-----Message d'origine-----
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
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
<anonymous@discussions.microsoft.com> a écrit dans le
message news:
1411301c44480$945d6d70$a501280a@phx.gbl...
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
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" <mbarnabo@club-internet.fr> a écrit dans le
message news:
139d101c443f1$98072180$a101280a@phx.gbl...
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
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"mbar" <mbarnabo@club-internet.fr> a écrit dans le
message news:
1331801c443ca$831fa340$a401280a@phx.gbl...
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
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
news@access.fr.vu
------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
Je te remercie vivement pour ton aide. A plus, Michel
-----Message d'origine----- 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/ ------------------------------------ a écrit dans le message news:
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" a écrit dans le 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" a écrit dans le 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
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/ ------------------------------------