[RESOLU] Capturer double clic sur une feuille pour initialiser un formulaire

Orodreth

XLDnaute Impliqué
Bonjour à tous et à toutes,

Je sèche là, j'y suis arrivé ce matin, depuis trou de mémoire.

Je capture un évènement double clic sur une feuille de calcul, précisément dans une cellule, et de cette cellule, je dois initialiser des valeurs d'un formulaire.

J'ai une procédure publique dans mon formulaire qui se déclare comme ça:
Code:
Public Sub Affecter_Valeur(R as Range)
    monTextBox.Text = R.Value
End Sub

et dans mon event double-clic, je fais ceci:
Code:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    If Sh.Name = "Feuil1" Then
        If Not (Target Is Nothing) Then
            UserForm1.Affecter_Valeur (Target)
        End If
    End If
End Sub

Et il plante sur la ligne UserForm1.Affecter_Valeur(Target).
Erreur d'éxécution "424": Objet Requis.
Pourtant, le UserForm1 est correctement chargé/affiché, et l'objet Target aussi.

Pour information, je lance mon code comme ceci:
Code:
Public Sub Init_FRM()
    Load UserForm1
    UserForm1.Show False
End Sub
en cliquant sur le bouton de la Feuil1.
Et après seulement, je teste mon double clic.

C'est très certainement idiot, mais on m'a collé des modèles de données et des réunions toute la journée, j'ai la tête un peu en vrac.

Si quelqu'un peut me renseigner ...

Merci d'avance,
Cordialement,
Orodreth
 
Dernière édition:
G

Guest

Guest
Re : Capturer double clic sur une feuille pour initialiser un formulaire

Bonjour,

Peut-être est-ce à cause des parenthèses dans l'appel à ta sub


sinon pourquoi ne pas faire directement dans le code de la feuille:
Code:
UserForm1.monTextBox.Text = Target.Value

A+
 

Pierrot93

XLDnaute Barbatruc
Re : Capturer double clic sur une feuille pour initialiser un formulaire

Bonjour,

essaye peut être ainsi :
Code:
UserForm1.Affecter_Valeur (Target)

et dans la sub :
Code:
Public Sub Affecter_Valeur(R as Range)
    NomUserForm.monTextBox.Text = R.Value
End Sub

nom de l'usf à adapter....

bon après midi
@+
 

Orodreth

XLDnaute Impliqué
Re : Capturer double clic sur une feuille pour initialiser un formulaire

Rebonjour Hasco, bonjour Pierrot,

En fait, j'ai testé d'abord sur le code de la feuille même, mais j'ai le même problème.

Ensuite, mes raisons de ne pas mettre de code dans les feuilles, c'est essentiellement parce qu'il est possible que je copie ces feuilles pour les exporter dans un autre classeur (à destination de certains utilisateurs qui ne sont pas dans mon process par exemple), et il ne faut alors pas de code dans la feuille copiée.

Vrai que je pourrais affecter directement la valeur dans le textbox, mais pour ça, mon classeur exemple est mal fait.
En réalité, c'est pas une seule information que je cherche à récupérer avec le Target.
Il y a ligne et colonne (row et column de Target donc), le comment.Text dans lequel je référence un identifiant, etc etc

C'est pour ça que le Target me plait bien.
D'autre part, avec les traitements du formulaire, je vais peut-être devoir déplacer la "cellule" d'un endroit à un autre, et le fait de garder l'objet Range m'aiderait bien pour les traitements qui suivent.

C'est pour ça que je cherche à transmettre la Range Target.

Voilà pour le pavé, maintenant les remerciements.

Tu avais raison, problème de parenthèse (et du coup, je me souviens aussi du "Call" utilisé ce matin dans le code ...)

Encore merci pour ton aide, tu m'as bien débloqué

Merci à vous deux
Cordialement,
Orodreth
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 712
Messages
2 081 802
Membres
101 819
dernier inscrit
lukumubarth