Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

foutue erreur 1004

12 réponses
Avatar
pascal.cambier
Bonjour.

Le code ci-dessous est ex=E9cut=E9 dans Access 2002. Il fonctionne une
premi=E8re fois parfaitement. Lorsque je veux l'ex=E9cuter une deuxi=E8me
(3=E8me et +) fois, j'ai l'erreur 1004.
=AB la m=E9thode 'Cells' de l'objet '_Global' a =E9chou=E9 =BB ou =AB la m=
=E9thode
'Range' de l'objet '_Worksheet' a =E9chou=E9 =BB

Je ne comprends pas cette inconstance : le code fonctionne une fois et
puis plus jamais, =E0 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 =3D CreateObject("Excel.Application")
Set xlBook =3D xlApp.Workbooks.Add
xlApp.Visible =3D True
Set xlSheet =3D xlBook.Worksheets.Add
(...)
Temp$ =3D Fn_Expurge(Left$(Rst("Act_Code_Pub") & " - " & Rst
("Act_Denomination"), 31))
xlSheet.Name =3D Temp$
xlSheet.Cells(2, 2) =3D "Client : " & Rst("Cli_Nom_Entreprise")
xlSheet.Cells(3, 2) =3D "Action : " & Rst("Act_Code_Pub") & " -
" & Rst("Act_Denomination")
xlSheet.Range(Cells(2, 2), Cells(3, 2)).Font.Size =3D 15
(erreur juste ici dessus) ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
^ ^ ^
(...)
Set xlSheet =3D Nothing
Set xlBook =3D Nothing
Set xlApp =3D Nothing

10 réponses

1 2
Avatar
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_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
a écrit dans le message de
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
Avatar
pascal.cambier
On 15 déc, 14:25, "gilles" wrote:
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
Avatar
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

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


Avatar
pascal.cambier
On 15 déc, 15:12, TopJB wrote:
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
Avatar
Michel__D
Bonjour,

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


a écrit dans le message de news:
On 15 déc, 15:12, TopJB wrote:
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
Avatar
pascal.cambier
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.
Avatar
gilles
Tu peux verifier dans le gestionnaire de tâches si tu as excel.exe qui
tourne ...
a écrit dans le message de
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.
Avatar
pascal.cambier
On 15 déc, 16:29, "gilles" wrote:
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...
Avatar
Blaise Cacramp
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
---- ---- ----


a écrit dans le message de 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
Avatar
PMO
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
1 2