foutue erreur 1004

Le
pascal.cambier
Bonjour.

Le code ci-dessous est exécuté dans Access 2002. Il fonctionne une
première fois parfaitement. Lorsque je veux l'exécuter une deuxième
(3ème et +) fois, j'ai l'erreur 1004.
« la méthode 'Cells' de l'objet '_Global' a échoué » ou « la m=
éthode
'Range' de l'objet '_Worksheet' a échoué »

Je ne comprends pas cette inconstance : le code fonctionne une fois et
puis plus jamais, à moins de relancer vba

avec mes meilleures salutations

Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
()
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
xlApp.Visible = True
Set xlSheet = xlBook.Worksheets.Add
()
Temp$ = Fn_Expurge(Left$(Rst("Act_Code_Pub") & " - " & Rst
("Act_Denomination"), 31))
xlSheet.Name = Temp$
xlSheet.Cells(2, 2) = "Client : " & Rst("Cli_Nom_Entreprise")
xlSheet.Cells(3, 2) = "Action : " & Rst("Act_Code_Pub") & " -
" & Rst("Act_Denomination")
xlSheet.Range(Cells(2, 2), Cells(3, 2)).Font.Size = 15
(erreur juste ici dessus) ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
^ ^ ^
()
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
gilles
Le #18144681
Salut Pascal,

Essaye d'insérer cette ligne pour voir. C'est peut être une question de
focus ...

xlSheet.Name = Temp$
xlSheet.Cells(2, 2) = "Client : " & Rst("Cli_Nom_Entreprise")
xlSheet.Cells(3, 2) = "Action : " & Rst("Act_Code_Pub") & " -
" & Rst("Act_Denomination")

' *********
xlSheet.Activate
xlSheet.Range(A1).select

' *********

xlSheet.Range(Cells(2, 2), Cells(3, 2)).Font.Size = 15
(erreur juste ici dessus) ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^

A+ Gilles
news:
Bonjour.

Le code ci-dessous est exécuté dans Access 2002. Il fonctionne une
première fois parfaitement. Lorsque je veux l'exécuter une deuxième
(3ème et +) fois, j'ai l'erreur 1004.
« la méthode 'Cells' de l'objet '_Global' a échoué » ou « la méthode
'Range' de l'objet '_Worksheet' a échoué »

Je ne comprends pas cette inconstance : le code fonctionne une fois et
puis plus jamais, à moins de relancer vba

avec mes meilleures salutations

Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
(...)
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
xlApp.Visible = True
Set xlSheet = xlBook.Worksheets.Add
(...)
Temp$ = Fn_Expurge(Left$(Rst("Act_Code_Pub") & " - " & Rst
("Act_Denomination"), 31))
xlSheet.Name = Temp$
xlSheet.Cells(2, 2) = "Client : " & Rst("Cli_Nom_Entreprise")
xlSheet.Cells(3, 2) = "Action : " & Rst("Act_Code_Pub") & " -
" & Rst("Act_Denomination")
xlSheet.Range(Cells(2, 2), Cells(3, 2)).Font.Size = 15
(erreur juste ici dessus) ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
^ ^ ^
(...)
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
pascal.cambier
Le #18144921
On 15 déc, 14:25, "gilles"
Salut Pascal,

Essaye d'insérer cette ligne pour voir. C'est peut être une question de
focus ...

        xlSheet.Name = Temp$
        xlSheet.Cells(2, 2) = "Client : " & Rst("Cli_Nom_Entrep rise")
        xlSheet.Cells(3, 2) = "Action : " & Rst("Act_Code_Pub") & " -
" & Rst("Act_Denomination")

' *********
xlSheet.Activate
xlSheet.Range(A1).select

' *********






Nan, itou (et range("A1") avece les guillements)
Merci quand même
TopJB
Le #18145041
Bonjour,

Ton problème pourrait ressembler à une erreur de fermeture de tes objets
de liaisons entre VBA et Excel

essaye avec (Pour ma part je n'ai pas essayé, mais peut être est-ce la
solution)

xlSheet.close
xlBook.close
xlApp.close

Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing

a écrit :
Bonjour.

Le code ci-dessous est exécuté dans Access 2002. Il fonctionne une
première fois parfaitement. Lorsque je veux l'exécuter une deuxième
(3ème et +) fois, j'ai l'erreur 1004.
« la méthode 'Cells' de l'objet '_Global' a échoué » ou « la méthode
'Range' de l'objet '_Worksheet' a échoué »

Je ne comprends pas cette inconstance : le code fonctionne une fois et
puis plus jamais, à moins de relancer vba

avec mes meilleures salutations

Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
(...)
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
xlApp.Visible = True
Set xlSheet = xlBook.Worksheets.Add
(...)
Temp$ = Fn_Expurge(Left$(Rst("Act_Code_Pub") & " - " & Rst
("Act_Denomination"), 31))
xlSheet.Name = Temp$
xlSheet.Cells(2, 2) = "Client : " & Rst("Cli_Nom_Entreprise")
xlSheet.Cells(3, 2) = "Action : " & Rst("Act_Code_Pub") & " -
" & Rst("Act_Denomination")
xlSheet.Range(Cells(2, 2), Cells(3, 2)).Font.Size = 15
(erreur juste ici dessus) ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
^ ^ ^
(...)
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing


pascal.cambier
Le #18145371
On 15 déc, 15:12, TopJB
Bonjour,

Ton problème pourrait ressembler à une erreur de fermeture de tes obj ets
de liaisons entre VBA et Excel

essaye avec (Pour ma part je n'ai pas essayé, mais peut être est-ce l a
solution)

        xlSheet.close
        xlBook.close
        xlApp.close    




Hello.
La méthode close n'existe que pour le classeur et ... je ne veux pas
clore ni sauvegarder.
De toutes façons, cela ne fonctionne malheureusement pas.
Ceci dit je pressentais aussi un problème d'instance ouverte
Michel__D
Le #18145621
Bonjour,

L'instance d'Excel doit encore exister met un xlApp.Quit avant Set xlApp=Nothing


On 15 déc, 15:12, TopJB
Bonjour,

Ton problème pourrait ressembler à une erreur de fermeture de tes objets
de liaisons entre VBA et Excel

essaye avec (Pour ma part je n'ai pas essayé, mais peut être est-ce la
solution)

xlSheet.close
xlBook.close
xlApp.close




Hello.
La méthode close n'existe que pour le classeur et ... je ne veux pas
clore ni sauvegarder.
De toutes façons, cela ne fonctionne malheureusement pas.
Ceci dit je pressentais aussi un problème d'instance ouverte
pascal.cambier
Le #18145601
On 15 déc, 16:09, "Michel__D" wrote:
Bonjour,

L'instance d'Excel doit encore exister met un xlApp.Quit avant Set xlApp =Nothing



bonsoir,

cela ne fonctionne pas non plus, désolé je suis.
gilles
Le #18145831
Tu peux verifier dans le gestionnaire de tâches si tu as excel.exe qui
tourne ...
news:
On 15 déc, 16:09, "Michel__D" wrote:
Bonjour,

L'instance d'Excel doit encore exister met un xlApp.Quit avant Set
xlApp=Nothing



bonsoir,

cela ne fonctionne pas non plus, désolé je suis.
pascal.cambier
Le #18145811
On 15 déc, 16:29, "gilles"
Tu peux verifier dans le gestionnaire de tâches si tu as excel.exe qui
tourne ...



Oui, je sais aussi. Il ne tourne pas. C'est d'ailleurs pour cela
xlApp.visible = true.

C'est décourageant...
Blaise Cacramp
Le #18146911
Mon frère Pascal,

C'est, comme tu le connais, toujours le même problème en VBA automation : il
faut être très explicite pour les manipulations d'objets hors application
porteuse. Donc comme tu es dans ACCESS, les objets EXCEL.

En cause ici : l'objet Cells (syntaxe 2) dans l'objet Range.
Pour la syntaxe 1 (références de type "A1"), cela ne pose pas de problème.

Et Microsoft le dit : « Ce comportement est inhérent au produit. »
http://support.microsoft.com/kb/178510/fr

La solution :

xlSheet.Range(Cells(2, 2), Cells(3, 2)).Font.Size = 15
doit devenir
xlSheet.Range(xlSheet.Cells(2, 2), xlSheet.Cells(3, 2)).Font.Size =
15


Et comme je sais que tu as une foule de lignes a changer, bon courage pour
demain

Cdt, Blaise
---- ---- ----



Bonjour.

Le code ci-dessous est exécuté dans Access 2002. Il fonctionne une
première fois parfaitement. Lorsque je veux l'exécuter une deuxième
(3ème et +) fois, j'ai l'erreur 1004.
« la méthode 'Cells' de l'objet '_Global' a échoué » ou « la méthode
'Range' de l'objet '_Worksheet' a échoué »

Je ne comprends pas cette inconstance : le code fonctionne une fois et
puis plus jamais, à moins de relancer vba

avec mes meilleures salutations

Dim xlApp As Excel.Application
Dim xlSheet As Excel.Worksheet
Dim xlBook As Excel.Workbook
(...)
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
xlApp.Visible = True
Set xlSheet = xlBook.Worksheets.Add
(...)
Temp$ = Fn_Expurge(Left$(Rst("Act_Code_Pub") & " - " & Rst
("Act_Denomination"), 31))
xlSheet.Name = Temp$
xlSheet.Cells(2, 2) = "Client : " & Rst("Cli_Nom_Entreprise")
xlSheet.Cells(3, 2) = "Action : " & Rst("Act_Code_Pub") & " -
" & Rst("Act_Denomination")
xlSheet.Range(Cells(2, 2), Cells(3, 2)).Font.Size = 15
(erreur juste ici dessus) ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
^ ^ ^
(...)
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
PMO
Le #18147071
Bonjour,

Je vous propose 2 pistes

PISTE 1
remplacez la ligne
xlSheet.Range(Cells(2, 2), Cells(3, 2)).Font.Size = 15
par
xlSheet.Range(xlSheet.Cells(2, 2), xlSheet.Cells(3, 2)).Font.Size = 15

PISTE 2
remplacez la ligne
xlSheet.Range(Cells(2, 2), Cells(3, 2)).Font.Size = 15
par
xlSheet.Range("b2:b3").Font.Size = 15

Cordialement.

PMO
Patrick Morange
Publicité
Poster une réponse
Anonyme