Excel VBA, partager variables entre Feuille Excel et Form

Résolu/Fermé
fl0 Messages postés 357 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 10 novembre 2021 - 9 févr. 2016 à 08:32
fl0 Messages postés 357 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 10 novembre 2021 - 9 févr. 2016 à 12:12
Bonjour,

Mon problème est le suivant.

J'ouvre un formulaire quand je double clique sur une cellule. Avant d'ouvrir le formulaire je mémorise la ligne et la colonne de la cellule ou je me trouve.

Le problème c'est qu'une fois que mon formulaire est ouvert, les variables ligne et colonne sont initilaisées et je n'ai plus mes valeurs. (J'en ai besoin pour mon retour suivant le traitement dans mon form)

J'ai déclaré mes variables dans "ThisWorkbook"

Je pense que mon problème est simple mais quand on bloque, on bloque :-)

Merci pour votre aide

A voir également:

3 réponses

fl0 Messages postés 357 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 10 novembre 2021 209
Modifié par pijaku le 9/02/2016 à 10:34
J'ai trouvé la solution.

Comme quoi la nuit porte conseils.
En fait j'ai déclaré mes variables ligne et colonne dans mon formulaire en public. (Il faut les déclarer la ou tu veux les utiliser au final)

du coup dans ma feuille j'ai ce code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Ligne = ActiveCell.Row
Colonne = ActiveCell.Column

FrmDommage.lbl_ligne = Ligne
FrmDommage.lbl_colonne = Colonne

FrmDommage.Show

End Sub



Et dans mon form pour exemple, j'ai ça:


Public Ligne As Long
Public Colonne As Long

Private Sub UserForm_Initialize()

lbl_ligne.Caption = Ligne
lbl_colonne.Caption = Colonne

End Sub



@+
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
9 févr. 2016 à 09:22
Bonjour,

Peut-être que la solution est de déclarer les variables en Static afin que la valeur soit conservée.

Par exemple au lieu de l'instruction suivante :

Dim ligne As Integer

écrire :

Static ligne As Integer

A tester
0
fl0 Messages postés 357 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 10 novembre 2021 209
Modifié par fl0 le 9/02/2016 à 12:12
Merci

il me faut en dynamique et non en static
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 9/02/2016 à 10:24
Bonjour,

Pour partager des variables entre VBA excel et VAB Userform, celles-ci doivent etre declarees Public dans un Module
ex:
Public ma_variable As Integer
0
fl0 Messages postés 357 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 10 novembre 2021 209
9 févr. 2016 à 12:12
Merci pour ta réponse

Donc je dois créer un module vide qui contient mes déclarations de variables public?
Pour contourner mon problème j'ai créé une fonction que j'appelle en double cliquant sur ma feuille et je,lui passe ma ligne et ma colonne.
0