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 ..
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
Non, c'est votre variable posrow qui ne peut pas être accédée sans le nom de l'objet Workseet devant.
Et "xxx" est le nom de la feuille Excel que l'objet Worksheet représente, pas le nom de celui-ci.
re
j'ai dis relire le post 5 ou 12 c'est pas compliqué
et vu que tu n'a pas l'air de bien maitriser la portabilité et la transmission de variable tient toi en au plus simple le 12
re
j'ai dis relire le post 5 ou 12 c'est pas compliqué
et vu que tu n'a pas l'air de bien maitriser la portabilité et la transmission de variable tient toi en au plus simple le 12
Effectivement je ne maîtrise pas totalement cette partie là, c'est pour ça que j'aurais aimé savoir que fait le #12. Le .ligne dans le private sub permet de sauvegarder la valeur de la variable avant d'appeler l'userform ?
Il permet d'initialiser une propriété de l'UserForm appelée ligne.
Bien se mettre dans le crâne que tout ce qui est Public dans un module objet n'est que méthodes et propriétés. Seul dans un module standard une procédure ou une variable Public est connue sans préfixe qualificateur d'objet dans tout le projet VBA. À noter que, dans un souci de documentation, le nom du module standard la portant pourrait être spécifié à la place.
Non, c'est votre variable posrow qui ne peut pas être accédée sans le nom de l'objet Workseet devant.
Et "xxx" est le nom de la feuille Excel que l'objet Worksheet représente, pas le nom de celui-ci.
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
C'est bon !! J'ai enfin fini par réussir à comprendre et à le faire
j'ai déclare la variable public posrow dans l'userform et le module private sub double click
+ écrit userform.posrow = target.row comme vous l'aviez préconisé.
Pas sûr que la condescendance soit vraiment de mise!
La différence d'expérience entre vous et moi permet d'expliquer le niveau de compréhension inégale.
Ce qui est logique pour vous qui avez 10 ans d'expérience ne l'est pas forcément pour moi qui suis plutôt un débutant !
Mais merci quand même de vos conseils