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

Modifier la variable ME

1 réponse
Avatar
FdeCourt
Bonjour,

J'utilise des macros compl=E9mentaires, qui elles m=EAme utilisent un
programme externe =E0 Excel.

Les programmes externes me permettent de me connecter =E0 une
application est de r=E9cup=E9rer des donn=E9es en fonction de crit=E8res qu=
i
sont saisis dans la feuille. Je clique sur un bouton, qui se trouve
sur la feuille et je r=E9cup=E8re mes infos

Je voudrais pouvoir utiliser ces programmes sans passer par une
feuille Excel.
Or =E0 aucun endroit il n'est indiqu=E9 dans le code VBA des macros
compl=E9mentaires (celle qui font appellent aux programmes externes) une
r=E9f=E9rence aux informations saisies dans la feuille.

Je suppose que les programmes externes re=E7oivent des informations de
la variable Me (suite au clique sur le bouton dans la feuille).

Comme j'aimerais pouvoir utiliser ces programmes sans feuille,
j'aurais souhait=E9 savoir s'il est possible de modifier la variable Me,
ou de l'instancier avec ce que je veux ?

Je vous remercie

Cordialement,

1 réponse

Avatar
Fdecourt
Merci Michdenis pour cette longue explication.
Je me suis débrouillé autrement (c'est pas propre, mais cela
fonctionne), en ajoutant par macro un bouton sur la feuille qui
appelle les programmes externe.

Cordialement,

F.

On 30 avr, 04:28, "MichDenis" wrote:
Bonjour FdeCourt,

Le mot "Me" s'emploie seulement dans un module de classe.
Dans Excel, à part des modules "standard", tous les modules
(Feuil, ThisWorkbook, Userform, insertion d'un module de classe)
où l'on saisit du code sont des modules de classe.

En fait, le petit mot Me représente l'objet de la classe lui-même.

Un petit exemple :
Pour signifier le module module de classe "Feuil1" dans du code,
on peut écrire   Feuil1.range()....  Dans ce cas, Feuil1 représen te la propriété
"Name" de l'objet feuille visible dans la fenêtre de l'éditeur de cod e. Me, si
l'on veut c'est le terme générique pour tous les modules de classe. O n aurait
pu écrire : Me.Range()...

Le mot "Me" se limite à représenter le module de classe dans lequel i l est utilisé.
On ne peut pas utiliser le mot "Me" pour faire référence à un autre module de
classe à l'extérieur du module de classe où il est utilisé(écri t).

En conséquence, si dans le code d'un module de classe d'Excel, tu obser ves
l'expression "Me", Tu peux le substituer par la propriété Name du mod ule
de classe.

Par code, on peut créer une instance de l'application Excel. Le fait qu e cette
instance soit visible est une option et non une nécessité. Ce cette i nstance
on peut créer des feuilles, les utiliser pour des opérations interm édiaires
et ne conserver que le résultat dans le médium de son choix. Après son
utilisation, l'instance d'Excel est supprimée de la mémoire.

"FdeCourt" a écrit dans le message de groupe de di scussion : ...
Bonjour,

J'utilise des macros complémentaires, qui elles même utilisent un
programme externe à Excel.

Les programmes externes me permettent de me connecter à une
application est de récupérer des données en fonction de critères qui
sont saisis dans la feuille. Je clique sur un bouton, qui se trouve
sur la feuille et je récupère mes infos

Je voudrais pouvoir utiliser ces programmes sans passer par une
feuille Excel.
Or à aucun endroit il n'est indiqué dans le code VBA des macros
complémentaires (celle qui font appellent aux programmes externes) une
référence aux informations saisies dans la feuille.

Je suppose que les programmes externes reçoivent des informations de
la variable Me (suite au clique sur le bouton dans la feuille).

Comme j'aimerais pouvoir utiliser ces programmes sans feuille,
j'aurais souhaité savoir s'il est possible de modifier la variable Me,
ou de l'instancier avec ce que je veux ?

Je vous remercie

Cordialement,