Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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 !

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 😵

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 😉
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 ! 😉
 
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 !
 
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
 
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.
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…