XL 2019 Lancement d'un userform avec une variable en mémoire

Pieerre69

XLDnaute Junior
Bonjour à toutes et à tous,

Dans un private sub before double click, j'appelle un userform dans lequel je sélectionne des données dans une liste. Cette sélection est ensuite copiée dans une cellule.
J'aurais aimé que la sélection se copie sur la ligne du double click donc j'avais pensé à déclarer une variable public : position = target.row que j'appelais dans mon userform en faisant par exemple cells(position,3).value = [...]

J'avais donc écrit dans le private sub : Userform1(position).show, en pensant faire comme lorsque j'appelle un sub dans un autre sub tout en conservant la valeur d'une variable. Mais ça ne fonctionne pas o_O

Avez-vous une idée de ce que je peux faire ? Je ne sais pas si j'ai été suffisamment clair ..
 
Solution
je traduit en francais
dans la feuille
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With UserForm1: .ligne = Target.Row: .Show: End With
End Sub
traduction
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
avec l'UserForm1: la variable public ligne = Target.Row: .affiche le userform : End With
End Sub

parti de là ligne est dispo partout dans le userform

bien sur dans le userform en haut de module
public ligne as long
et c'est tout pas la peine d'aller chercher midi 14 heures ;)

si tu pige pas là je peux plus rien pour toi ;)

Pieerre69

XLDnaute Junior
30 posts en t'ayant maché le travail pour que tu n'es qu'un copier coller à faire ,reconnais que c'est un peu lourd
et de rien 😁
Vous m'avez mâché le travail, c'est bien vrai et je vous remercie ! Mais plutôt que de copier bêtement en ne comprenant rien et pour revenir dans deux mois vous questionner sur le même sujet, je préfère essayer de comprendre ce que je n'ai pas bien fait ou compris !

Certes ça prend plus de temps et ça demande de la patience, mais au moins je saurais pour la prochaine fois et je ne vous embêterai pas là dessus ! ;)
 

patricktoulon

XLDnaute Barbatruc
en gros comme te la dis @Dranreb me semble t il
la variable public posrow dans le userform devient une méthode ou une propriété


et on peut la manipuler partout dans le classeur en la préfixant du parent!!!!!!!!!

userform1.posrow=blablabla
userform1.show

ou dans un bloc with(ne pas oublier les points )
with userform1 : .posrow=blablabla : .show : end with
 

Pieerre69

XLDnaute Junior
en gros comme te la dis @Dranreb me semble t il
la variable public posrow dans le userform devient une méthode ou une propriété


et on peut la manipuler partout dans le classeur en la préfixant du parent!!!!!!!!!

userform1.posrow=blablabla
userform1.show

ou dans un bloc with(ne pas oublier les points )
with userform1 : .posrow=blablabla : .show : end with
Ahh ! c'est ça que j'arrivais pas à comprendre! Je suis pas familiariser avec les noms "méthodes", "propriétés". Je sais les manipuler mais sorti comme ça je n'avais aucunes idées de quoi Dranreb parlait!
Merci d'avoir éclairci !
 

juvaxe

XLDnaute Occasionnel
Bonjour

Avant de faire le :

Userform.show

Tu peux faire des instructions telles que :

Userform.Textbox1 = "toto"
Userform.Listbox1.Additem = "titi"

Au moment du "show" tu trouveras les controls pré-renseignés.

Attention : dans le Userform_Initialize il ne faut pas les détruire

Bonne réception
 

Dranreb

XLDnaute Barbatruc
Je crois même qu'il n'y a qu'une raison à appeler méthode une procédure Public ou propriété une variable Public dans un module objet: c'est pour rappeler aussitôt chaque fois qu'on en parle qu'elle n'est utilisable qu'à condition de la qualifier de l'objet parent. Exception: certains objets parents sont assumés si on ne les précise pas. Par exemple l'objet Application d'Excel. Mais ça on ne sait pas le définir dans une classe perso en VBA. C'est d'autant plus important de savoir que c'en est une, et qu'il vaudrait mieux préciser son parent.
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87