OVH Cloud OVH Cloud

Bizarre et trés gênant

11 réponses
Avatar
AP
J'exporte des données vers EXCEL.
Je met en forme ensuite le tableau que j'ai crée depuis ACCESS. Jusque là
tout va bien,
mais, je veux créer deux fractionner le tableau.
J'utilise pour cela le code suivant:

' crée une fenêtre
sht.Range("A5").Select
With App.ActiveWindow
.SplitColumn = 0 ' nombre de colonnes à gauche qui seront figées
.SplitRow = 4 ' nombre de lignes qui seront figées avant la
séparation
End With
' et fige les volets
oApp.ActiveWindow.FreezePanes = True

Mais je ne sais pour quelle raison, une erreur se produit pas toujours sur
la ligne
.SplitColumn = 0

Err 91 : Variable objet ou variable de bloc with non définie.

A partir de la première apparition de ce message, cette erreur se reproduit
systématiquement

A priori, elle est liée au fait que App n'est pas défini.

J'ai la même erreur sur le code suivant

dim App as object
set App = getobject(,"EXCEL.application)

Je ne trouve pas la raison

Merci pour toute aide

10 réponses

1 2
Avatar
AP

J'exporte des données vers EXCEL.
Je met en forme ensuite le tableau que j'ai crée depuis ACCESS. Jusque là
tout va bien,
mais, je veux créer deux fractionner le tableau.
J'utilise pour cela le code suivant:

' crée une fenêtre
sht.Range("A5").Select
With App.ActiveWindow
.SplitColumn = 0 ' nombre de colonnes à gauche qui seront figées
.SplitRow = 4 ' nombre de lignes qui seront figées avant la
séparation
End With
' et fige les volets
oApp.ActiveWindow.FreezePanes = True

Mais je ne sais pour quelle raison, une erreur se produit pas toujours sur
la ligne
.SplitColumn = 0

Err 91 : Variable objet ou variable de bloc with non définie.

A partir de la première apparition de ce message, cette erreur se reproduit
systématiquement

A priori, elle est liée au fait que App n'est pas défini.

Le message : un composant active X ne peut pas créer un objet s'affiche lorsque le code suivant est exécuté

dim App as object
set App = getobject(,"EXCEL.application)

Je ne trouve pas la raison

Merci pour toute aide



Avatar
pgz
Bonjour,
Dim App as Excel.Application
et
set App = Excel.Application
il faut ensuit ouvrir un document :
Set wbk = xl.Workbooks.Open(str)
Par ailleurs tu risques d'avoir une erreur un peu plus loin. Juste après
'End With' (prématuré?) tu as un oApp (?).
Bonne chance, et salut
pgz

-------------------------------------------





J'exporte des données vers EXCEL.
Je met en forme ensuite le tableau que j'ai crée depuis ACCESS. Jusque là
tout va bien,
mais, je veux créer deux fractionner le tableau.
J'utilise pour cela le code suivant:

' crée une fenêtre
sht.Range("A5").Select
With App.ActiveWindow
.SplitColumn = 0 ' nombre de colonnes à gauche qui seront figées
.SplitRow = 4 ' nombre de lignes qui seront figées avant la
séparation
End With
' et fige les volets
oApp.ActiveWindow.FreezePanes = True

Mais je ne sais pour quelle raison, une erreur se produit pas toujours sur
la ligne
.SplitColumn = 0

Err 91 : Variable objet ou variable de bloc with non définie.

A partir de la première apparition de ce message, cette erreur se reproduit
systématiquement

A priori, elle est liée au fait que App n'est pas défini.

Le message : un composant active X ne peut pas créer un objet s'affiche lorsque le code suivant est exécuté

dim App as object
set App = getobject(,"EXCEL.application)

Je ne trouve pas la raison

Merci pour toute aide





Avatar
AP
Désolé, mais cela ne fonctionne toujours pas.
Dans le débogueur, App.ActiveWindow = nothing



Bonjour,
Dim App as Excel.Application
et
set App = Excel.Application
il faut ensuit ouvrir un document :
Set wbk = xl.Workbooks.Open(str)
Par ailleurs tu risques d'avoir une erreur un peu plus loin. Juste après
'End With' (prématuré?) tu as un oApp (?).
Bonne chance, et salut
pgz

-------------------------------------------





J'exporte des données vers EXCEL.
Je met en forme ensuite le tableau que j'ai crée depuis ACCESS. Jusque là
tout va bien,
mais, je veux créer deux fractionner le tableau.
J'utilise pour cela le code suivant:

' crée une fenêtre
sht.Range("A5").Select
With App.ActiveWindow
.SplitColumn = 0 ' nombre de colonnes à gauche qui seront figées
.SplitRow = 4 ' nombre de lignes qui seront figées avant la
séparation
End With
' et fige les volets
oApp.ActiveWindow.FreezePanes = True

Mais je ne sais pour quelle raison, une erreur se produit pas toujours sur
la ligne
.SplitColumn = 0

Err 91 : Variable objet ou variable de bloc with non définie.

A partir de la première apparition de ce message, cette erreur se reproduit
systématiquement

A priori, elle est liée au fait que App n'est pas défini.

Le message : un composant active X ne peut pas créer un objet s'affiche lorsque le code suivant est exécuté

dim App as object
set App = getobject(,"EXCEL.application)

Je ne trouve pas la raison

Merci pour toute aide







Avatar
Raymond [mvp]
Bonjour.

tu trouveras des exemples d'automation vers excel sur :
http://officesystem.access.free.fr/vba/excel.htm

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"AP" a écrit dans le message de news:

Désolé, mais cela ne fonctionne toujours pas.
Dans le débogueur, App.ActiveWindow = nothing




Avatar
AP
Merci, mais malheureusement, cela ne résoud en rien mon problème


Bonjour.

tu trouveras des exemples d'automation vers excel sur :
http://officesystem.access.free.fr/vba/excel.htm

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"AP" a écrit dans le message de news:

Désolé, mais cela ne fonctionne toujours pas.
Dans le débogueur, App.ActiveWindow = nothing









Avatar
AP
J'ai avancé.

Le code te que je l'ai écrit fonctionne. En fait l'erreur est aléatoire.
La routine peut fonctionner plusieurs fois à la suite sans soucis, puis se
planter sur la ligne

set App = getobject(,"EXCEL.application)
avec le message Un composant active X ne peut pas créer un objet

comme cela plante à la deuxième fois, voire à la première

Cela me gène puisque cette apli est multi utlisateurs

merci éventuellement pour l'aide



Bonjour.

tu trouveras des exemples d'automation vers excel sur :
http://officesystem.access.free.fr/vba/excel.htm

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"AP" a écrit dans le message de news:

Désolé, mais cela ne fonctionne toujours pas.
Dans le débogueur, App.ActiveWindow = nothing









Avatar
Raymond [mvp]
le getObjet ne peut ouvrir qu'une application déja ouverte. dans ce cas, il
faut prévoir le traitement des erreurs et la possibilité de créer une
nouvelle application. pour éviter les interférences entre les utilisateurs
d'une même application, il est préférable d'utiliser un createobject.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"AP" a écrit dans le message de news:

J'ai avancé.

Le code te que je l'ai écrit fonctionne. En fait l'erreur est aléatoire.
La routine peut fonctionner plusieurs fois à la suite sans soucis, puis se
planter sur la ligne

set App = getobject(,"EXCEL.application)
avec le message Un composant active X ne peut pas créer un objet

comme cela plante à la deuxième fois, voire à la première

Cela me gène puisque cette apli est multi utlisateurs

merci éventuellement pour l'aide


Avatar
AP
L'application est installée sur plusieurs poste.
Le fichier EXCEL est exporté sur le disque dur de chaque PC, il n'y a pas
d'interférence entre les utilisateurs.
Le plantage est peut être lié à un bug ACCESS, puisque le code fonctionne
aléatoirement.


le getObjet ne peut ouvrir qu'une application déja ouverte. dans ce cas, il
faut prévoir le traitement des erreurs et la possibilité de créer une
nouvelle application. pour éviter les interférences entre les utilisateurs
d'une même application, il est préférable d'utiliser un createobject.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"AP" a écrit dans le message de news:

J'ai avancé.

Le code te que je l'ai écrit fonctionne. En fait l'erreur est aléatoire.
La routine peut fonctionner plusieurs fois à la suite sans soucis, puis se
planter sur la ligne

set App = getobject(,"EXCEL.application)
avec le message Un composant active X ne peut pas créer un objet

comme cela plante à la deuxième fois, voire à la première

Cela me gène puisque cette apli est multi utlisateurs

merci éventuellement pour l'aide







Avatar
Raymond [mvp]
le code fonctionne aléatoirement parceque l'objet application excel est
ouvert ou non ouvert et qu'avec GetObject, il doit être ouvert. Essaie
plutôt avec createobject et ne le ferme que lorsque tu as terminé ta
procédure.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"AP" a écrit dans le message de news:

L'application est installée sur plusieurs poste.
Le fichier EXCEL est exporté sur le disque dur de chaque PC, il n'y a pas
d'interférence entre les utilisateurs.
Le plantage est peut être lié à un bug ACCESS, puisque le code fonctionne
aléatoirement.



Avatar
AP
Le code transmis n'est pas complet.

Avant la mis en forme de la feuille EXCEL, j'exporte les données et EXCEL
reste ouvert. Cela pourrai-t-il être lié au message d'erreur affiché par
EXCEL (voir autre question que j'ai posé)???

Je ne ferme que lorsque j'ai terminé


le code fonctionne aléatoirement parceque l'objet application excel est
ouvert ou non ouvert et qu'avec GetObject, il doit être ouvert. Essaie
plutôt avec createobject et ne le ferme que lorsque tu as terminé ta
procédure.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"AP" a écrit dans le message de news:

L'application est installée sur plusieurs poste.
Le fichier EXCEL est exporté sur le disque dur de chaque PC, il n'y a pas
d'interférence entre les utilisateurs.
Le plantage est peut être lié à un bug ACCESS, puisque le code fonctionne
aléatoirement.








1 2