Conservation des variables d'un tableau vba

  • Initiateur de la discussion Initiateur de la discussion Bretagne35
  • Date de début Date de début

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 !

B

Bretagne35

Guest
Bonjour,

Je souhaiterais conserver les variables d'un tableau, celles -ci seraient définies par un programme du premier fichier excel et ensuite réutilisées par celui du deuxième fichier. J'ai essayé en déclarant mon tableau avec Public ou static mais cela n'a pas marché.
Comment puis-je résoudre ce problème?

Merci d'avance pour vos réponses.
 
Re : Conservation des variables d'un tableau vba

Bonjour Bretagne, Tototiti

Et bien moi cela m'intéresse beaucoup cette histoire. Je me suis toujours posé la question. Si j'ai un tableau, est ce que je peux le garder en mémoire, à suivre...😕
 
Dernière édition:
Re : Conservation des variables d'un tableau vba

bonjour tous
par defaut si tu libere pas tes variables tableaux tu les conservent!!!
exemple
Dim t As Variant, t2() As Variant
pour les liberer c'est erase
Erase t, t2
pour un object c'est different exemple pour l'object Scripting.Dictionary

code
Set m = CreateObject("Scripting.Dictionary")
code
pour liberer c'est Nothing
Set m = Nothing
ne pas confondre avec des variables public
d'ou l'importance de liberer en fin de code si pas reutiliser "occupation memoire pc" donc ralentissement

regarder aussi du côte de ReDim Preserve
 
Dernière édition:
Re : Conservation des variables d'un tableau vba

Re ,Bonjour Laetitia, Banzai


par defaut si tu libere pas tes variables tableaux tu les conservent!!!

Laetitia: Ton analyse m'intéresse. Ce qui voudrait dire que si je met un tableau en "scripting Dictionary", si je lance d'autres macro, le tableau du scripting dictionary est toujours utilisable ultérieurement 😕.

Mais alors le Public a(100), on ne peut pas le supprimer 😕.

Ou la la, que de questions métaphysiques à développer 😱.
 
Dernière édition:
Re : Conservation des variables d'un tableau vba

Bonsoir
Le sujet m'intéresse
Je pensais que les variables déclarées dans une macro n'étaient plus visibles (utilisables) ailleurs
Pour cela que je ne prenais pas la peine de "eraser" mes tableaux

Bonne soirée
 
Re : Conservation des variables d'un tableau vba

bonjour tous je crois que je me suis mal exprimée mille excuses les amis....
la portée des variables reste au niveau de la macro ou dans le meme module
exemple avec Dictionary

Code:
Dim c As Range, m As Object
Sub es()
      Application.ScreenUpdating = False
         Set m = CreateObject("Scripting.Dictionary")
         For Each c In Range("a2", Cells(Rows.Count, "a").End(xlUp))
             m(c.Value) = m(c.Value) + 1
         Next c
      [B2].Resize(m.Count, 1) = Application.Transpose(m.keys)
      [c2].Resize(m.Count, 1) = Application.Transpose(m.Items)
'Set m = Nothing
End Sub

Sub est()
On Error Resume Next
[e2].Resize(m.Count, 1) = Application.Transpose(m.keys)
[f2].Resize(m.Count, 1) = Application.Transpose(m.Items)
End Sub

si tu appel la macro "est" on a bien garde les valeurs si nothing non

une variable public déclare dans un module est utiliser dans tous les modules

un autre exemple avec redim preserve dans un userform "agrandir ou reduire avec double click"
 

Pièces jointes

Dernière édition:
Re : Conservation des variables d'un tableau vba

Bonjour
Si j'ai compris
Pour toutes les variables déclarées dans une macro , il n'est pas utile de les rendre au "néant" avant le End Sub
Les variables déclarées dans un module (en Public ou pas), selon le cas (réemploi) , pour les ré-initialiser, on passe par les "Erase" ou "Nothing", afin d'avoir une variable vide
Si j'ai mal compris n'hésitez-pas (un peu quand même) à me le dire
Bonne journée
 
Re : Conservation des variables d'un tableau vba

rebonjour tous
il n'est pas utile de les rendre au "néant" avant le End
non c'est pas une obligation
si utilisation de l'instruction SET fortement conseille egalement ... d'ailleurs j'oublie souvent de le faire on est pas parfait!!!

precision je pensais egalement au SET hors appel object ou collection ....FIND par exemple
Code:
 Set c = .Find(données)
 
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour