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

Pouvoir nommer une plage de cellules dans EXCEL avec la classe fournie avec la version WD10

2 réponses
Avatar
Moua
Bonjour à tous.

Après avoir alimenté les différents feuilles d’un tableau EXCEL avec la
classe en OleAutomation, je voudrai nommer des plages de cellules.

La syntaxe VBA est :

ActiveWorkbook.Names.Add Name:="PlanCompte",
RefersTo:="=Plan!A1:A120"
Pour donner le nom « PlanCompte » à la plage de cellules “A1 à A120” de
la feuille “Plan”

En Windev 10 je tente d’utiliser la syntaxe :

:m_xExcel>>ActiveWorkbook>>Names>>Add("Name:="+psNom ,
"RefersTo:="+sDefinition)

Où PsNom est le nom a donner et sDefinition est une chaîne de
caractères a la valeur : "=Plan!A1:A120".

Après cette instruction la gestion des erreurs me donne :

-----------------------------------------------------------------------------------------------------------------
Vous avez appelé la méthode Automation <Add>

En tentant d’invoquer la propriété <Add> ou de lire la propriété <Add>,
l’objet Automation/ActiveX a renvoyer l’erreur suivante :
‘800A03EC’, nom non valide

En tentant d’invoquer la propriété <Add>, l’objet Automation/ActiveX a
renvoyer l’erreur suivante :
‘800A03EC’, nom non valide

En tentant de lire la propriété <Add>, l’objet Automation/ActiveX a
renvoyer l’erreur suivante :
‘80020003’, le membre demandé n’existe pas

En tentant d’écrire la propriété <Add>, l’objet Automation/ActiveX a
renvoyer l’erreur suivante :
‘80020003’, le membre demandé n’existe pas
-----------------------------------------------------------------------------------------------------------------

Je pense que c’est dans la façon de passer les paramètres à la méthode
Add() qui n’est pas bonne, mais je ne trouve pas la bonne méthode.

Quelqu’un a-t-il déjà fait cette manipulation ?

Merci

2 réponses

Avatar
patrice
"Moua" a écrit dans le message de
news:gkhas4$6ia$
Bonjour à tous.
La syntaxe VBA est :

ActiveWorkbook.Names.Add Name:="PlanCompte",
RefersTo:="=Plan!A1:A120"




:m_xExcel>>ActiveWorkbook>>Names>>Add("Name:="+psNom ,
"RefersTo:="+sDefinition)




le function f(a=v1, b=v2) est la syntaxe vba pour lier des parametres par
leur nom.
En ole, tu peut pas faire ca, faut les passer dans l'ordre
soit : f(v1,v2) ou f(v2,v1)
faut aller voir dans la doc sur msdn l'ordre de passage des variables, ainsi
que la liste complete.
Avatar
Moua
patrice avait soumis l'idée :
"Moua" a écrit dans le message de
news:gkhas4$6ia$
Bonjour à tous.
La syntaxe VBA est :

ActiveWorkbook.Names.Add Name:="PlanCompte",
RefersTo:="=Plan!A1:A120"




:m_xExcel>>ActiveWorkbook>>Names>>Add("Name:="+psNom ,
"RefersTo:="+sDefinition)




le function f(a=v1, b=v2) est la syntaxe vba pour lier des parametres par
leur nom.
En ole, tu peut pas faire ca, faut les passer dans l'ordre
soit : f(v1,v2) ou f(v2,v1)
faut aller voir dans la doc sur msdn l'ordre de passage des variables, ainsi
que la liste complete.



Merci Patrice, c'était effectivement le problème. Maintenant cela
fonctionne.