Comment récupérer le contenu d'une variable global dans une feuille excel?

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

philmascio

XLDnaute Nouveau
Bonjour,

Dans un module VBA, j'ai déclaré une variable x en "global" pour qu'elle continue à exister après l'exécution du code qui la renseigne.
Soit x=100

Comment récupérer et utiliser le contenu de cette variable dans une feuille excel (en dehors de l'exécution d'un code) ?
Si j'écris =x dans une cellule, ça ne retourne pas 100.

Question 2 (la principale question): est-il possible d'utiliser des variables tableaux à deux dimensions à la place d'une plage nommée pour travailler directement dessus à partir d'une feuille ?
Je souhaite placer des données en mémoire et travailler dessus (avec des fonctions de recherche principalement) pour accélérer le fonctionnement.
En l'occurrence, ce tableau est une liste triée et dédoublonnée construite à partir d'une première liste inscrite dans une feuille du classeur et ça m'éviterait de réécrire "physiquement" cette liste à chaque fois que je dois y faire appel.

Pour être encore plus explicite, je veux reprendre la formule suivante
=DECALER(HLN;EQUIV(C447;HLP;0)-1;;NB.SI(HLP;C447))
écrite dans Données\Validation comme source d'une liste déroulante
en utilisant des variables tableaux à la place des plages nommées HLN et HLP.

Qui relèvera le défi ? 😉
 
Dernière édition:
Re : Comment récupérer le contenu d'une variable global dans une feuille excel?

Bonsoir,
j'ai l'impression que tu t'embarques dans une usine à gaz ou alors je n'ai pas compris ce que tu cherches à faire mais ne sachant pas où tu veux en venir peut-être que je me trompe.
Un essai vite fait concernant ta 1ère question :
Dans un module
Code:
Option Explicit
Public toto As Integer
Sub a()
toto = 100
MsgBox toto
End Sub
Function tutu()
Application.Volatile
tutu = toto
End Function
Dans la feuille en A1 taper =tutu()
La fonction sera mise à jour dès la prochaine intervention sur la feuille.
Si l'on veut avoir l'actualisation dès le retour dans la feuille, placer dans le module de la feuille 1 :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("A1").Value <> 0 Then Application.Calculate
End Sub

Mais bon le plus simple est quand même d'actualiser A1 à la fin de ton code directement...en fait je ne comprends toujours pas l'intérêt mais peut-être suis-je à côté de la plaque.
Pour tes autres questions un petit fichier exemple explicite serait apprécié.
A+

Edit : je n'ai pas essayer mais peut-être passer par une cellule nommée qui récupérerait la valeur de la variable.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour