Double click - Userform

Résolu/Fermé
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 - 15 août 2018 à 17:33
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 19 août 2018 à 01:03
Bonsoir,

Je cherche à double clicker sur une feuille de calcul "Listing" pour ouvrir un userform et d’y renvoyer les valeurs dans les Txt_box et les cb_box respectives pour modifier les données.

Donc quand je double click sur la feuille de calcul « Listing » l’userform s’affiche (pas de problème sur ce point)

Normalement, si j’ai bien compris les tutos et forums, l’userform devrait s’afficher avec les valeurs des différentes colonnes de la feuille « Listing ». Ce qui ne fait pas avec le code ci-dessous .

1°) J’ai déclaré une variable public Lalig qui devrait contenir la ligne du double click qui est celle à modifier


Public Lalig As Long


2°) Dans le module de la feuille « Listing »


Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
Lalig = Target.Row
frm_saisie.Show
End Sub


3°) 3°) Dans le module de l’userform

3°) Dans le module de l’userform
Private Sub userform_initialise()
If Lalig > 0 Then
With Worksheets("Listing")
Me.cbxclub.Value.Range ("A" & Lalig)
Me.Txtlicence.Value.Range ("C" & Lalig)
Me.TxtNom.Value.Range ("D" & Lalig)
Me.Txtprenom.Value.Range ("E" & Lalig)
Me.Txtdate.Value.Range ("F" & Lalig)
Me.Txt_clt_Aller_Ufolep.Value.Range ("G" & Lalig)
Me.Txt_clt_retour_Ufolep.Value.Range ("H" & Lalig)
Me.Txt_clt_Aller_FFTT.Value.Range ("I" & Lalig)
Me.Txt_clt_retour_FFTT.Value.Range ("J" & Lalig)
Me.Txt_club_FFTT.Value.Range ("K" & Lalig)
Me.cbxmute.Value.Range ("L" & Lalig)
End With
End Sub


Merci de votre aide

lien de partage : https://mon-partage.fr/f/gSmSx58c/
A voir également:

8 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
18 août 2018 à 10:37
Bonjour,

Voici le classeur modifié:

https://www.cjoint.com/c/HHsiKicX4yQ

voir si cela convient?

1
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
15 août 2018 à 19:16
Bonjour,

Il n'y a pas de macro "Private Sub userform_initialise()". Quant à celle que tu publies, il manque les signes "=".

Cordialement.

Daniel
0
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 2
15 août 2018 à 20:29
Bonsoir Daniel,

Je ne comprends pas.

A l'ai du fichier de partage, peux tu m'en dire plus car je nage complètement

Cordialement

xavier
0
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
15 août 2018 à 22:09
Exactement, ta macro s'appelle "Private Sub userform_initialise()
" au lieu de "Private Sub UserForm_Initialize()"
0
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 2
15 août 2018 à 22:44
ca ne change rien, cela ne fonctionne pas.

Peux tu regarder dans le fichier partager STP, j'y comprends plus rien.
Quitte à faire revenir un seul enregistrement, pour que j'arrive à comprendre quelque chose
0
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
16 août 2018 à 09:55
J'ai apporté les modifications suivantes :
La ligne "Public Lalig As Long
" doit être dans un module standard (Module_saisie :

' Afficher le formulaire à partir d'une feuille excel
Public Lalig As Long


Sub ouvreformulaire()

frm_saisie.Show

End Sub


La macro d'initialisation est la suuivante :

Private Sub userform_initialize()

Me.Cbt_Valider.Enabled = False

If Lalig > 0 Then

With Worksheets("Listing")

Me.cbxclub.Value = .Range("A" & Lalig)
Me.Txtlicence.Value = .Range("C" & Lalig)
Me.TxtNom.Value = .Range("D" & Lalig)
Me.Txtprenom.Value = .Range("E" & Lalig)
Me.Txtdate.Value = .Range("F" & Lalig)
Me.Txt_clt_Aller_Ufolep.Value = .Range("G" & Lalig)
Me.Txt_clt_retour_Ufolep.Value = .Range("H" & Lalig)
Me.Txt_clt_Aller_FFTT.Value = .Range("I" & Lalig)
Me.Txt_clt_retour_FFTT.Value = .Range("J" & Lalig)
Me.Txt_club_FFTT.Value = .Range("K" & Lalig)
Me.cbxmute.Value = .Range("L" & Lalig)

End With
End If
End Sub


Ca fonctionne comme ça.

Daniel
0
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 2
16 août 2018 à 22:28
Bonsoir Daniel,

Désolé, mais cela ne fonctionne toujours pas ci-dessous le lien de partage si tu veux bien regarder ??

https://mon-partage.fr/f/EQOxtKlB/

Merci d'avance

Cordialement
0
danielc0 Messages postés 838 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 23 avril 2024 74
16 août 2018 à 22:38
https://mon-partage.fr/f/bwyNZ2w4/

Daniel
0
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 2
16 août 2018 à 23:26
Merci daniel.

Je cherche quand même à quel endroit ou j'ai péché pour pas dire autre chose !!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
16 août 2018 à 22:52
Bonjour,

si tu as double-cliqué dessus la cellule est obligatoirement active.
Pas besoin de transmettre une variable, sert-toi directement de ActiveCell dans l'UF.
eric
0
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 2
17 août 2018 à 23:01
Bonsoir Daniel,

Avec toute ma meilleure volonté, je suis dans l’impasse et je préfère m’adresser aux personnes compétentes car je commence vraiment à désespérer. Sur 2 problèmes que je n’arrive pas à trouver.

1°) Modifications

Donc si je double click sur la feuille de calcul « Listing » les données à modifier apparaissent avec le formulaire (merci daniel)

En revanche, si je modifie les données et malgré ce que j’ai mis sous le bouton « Modifier » je reste dans les choux.


Private Sub Cbt_modifier_Click()
If Lalig > 0 Then
With Worksheets("listing")
.Range("A" & Lalig) = Me.cbxclub.Value
.Range("C" & Lalig) = Me.Textlicence.Value
.Range("D" & Lalig) = Me.TxtNom.Value
.Range("E" & Lalig) = Me.Txtprenom.Value
.Range("F" & Lalig) = Me.Txtdate.Value
.Range("G" & Lalig) = Me.Txt_clt_Aller_Ufolep.Value
.Range("H" & Lalig) = Me.Txt_clt_retour_Ufolep.Value
.Range("I" & Lalig) = Me.Txt_clt_Aller_FFTT.Value
.Range("J" & Lalig) = Me.Txt_clt_retour_FFTT.Value
.Range("K" & Lalig) = Me.Txt_club_FFTT.Value
.Range("L" & Lalig) = Me.cbxmute.Value
End With
End If
Unload Me
End Sub


En outre et pour ne pas porter à confusion, je souhaiterai que le bouton « valider » soit inactif quand le formulaire s’ouvre quand j’ai double cliqué sur la feuille de calcul soit ;


Me.Cbt_Valider.Enabled = False


Mais je ne vois pas à quelle endroit il faut l'indiquer.
Est-il possible quand on modifie un enregistrement, que celui_ci comporte une couleur distinctive pour repérer les modifications effectuées ?


2°) Concernant l’ajout des données

A l’ouverture de mon userform, je renseigne les champs respectifs et quand j’appuie sur le bouton "Valider" , les données remplacent la dernière ligne.

En outre et pour ne pas porter à confusion, je souhaiterai que le bouton « modifier » soit inactif quand le formulaire s’ouvre soit ;


Me.Cbt_Modifier.Enabled = False



Lien de partage : https://mon-partage.fr/f/ZAfdMJhL/

Comme franchement, je ne touche pas une bille en VBA, vous est il possible de modifier mon petit truc en lien de partage cela vraiment sympa;

Cordialement

xavier
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
Modifié le 18 août 2018 à 09:35
Bonjour,

si tu testais ma proposition ?

Accessoirement "je reste dans les choux" ne veux rien dire du tout. Explique...
eric
0
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 2
18 août 2018 à 14:42
Bonjour Eric,

Pour tester ta proposition, Il faudrait d'abord que j'arrive à comprendre le langage. Comme dit plus haut, je ne touche pas une bille. Je scrute les forums, tuto, video, pour avoir un espoir de trouver quelques choses qui peut se rapprocher de ce que j'aimerai voir fonctionner dans mon petit truc et au mieux le recopier (quelques fois ça fonctionne, mais pour ce cas ??).

Maintenant, si peux me satisfaire sur ma demande j'en serai heureux et enfin terminer mon projet.

Dans ma région, "Rester dans les choux" c'est être dans une mauvaise situation ou être dans l'embarras voir un Echec. Donc pour ce qui me concerne c'et plutôt un échec si personne ne peut m'aider.

Cordialement
0
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 2
18 août 2018 à 14:29
Bonjour,

Ben il ne se passe rien de plus, quand je click sur ouvrir un formulaire, il y a dejà un enregistrement dans les champs.

Et quand je double click sur la feuille de calcul, le formulaire ne s'ouvre plus !!

Il doit y avoir un couac quelques part. Mais de toute façon, je ne ferai pas mieux

Merci quand même
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
18 août 2018 à 14:43
Ben il ne se passe rien de plus, quand je click sur ouvrir un formulaire, il y a dejà un enregistrement dans les champs.

C'est normal c'est le 1er de la liste, il suffit de faire défiler avec la comboBox pour sélectionner celui que l'on désire modifier ou ajouter

Et quand je double click sur la feuille de calcul, le formulaire ne s'ouvre plus !!

Il faut lire le code dans le module de la feuille listing !

Il est écrit que lors d'un double clic dans la colonne A il y a ouverture du formulaire

l doit y avoir un couac quelques part. Mais de toute façon, je ne ferai pas mieux

Il faut être un peu persévérant et chercher à comprendre!!!!!!!

Il faudrait quand même connaitre les fondamentaux avant de se lancer dans une telle entreprise

Bon courage

@+ Le Pivert
0
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 2
18 août 2018 à 22:31
Bonsoir,

Merci de votre aide. C'est pas tout à fait ce que j'attendais, mais avec votre aide j'y suis arrivé; Enfin presque !!
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
Modifié le 19 août 2018 à 01:04
Ce n'était pas bien compliqué ce que je te proposais...
Dans ton formulaire tu as juste à mettre
Lalig = Activecell.Row

pour récupérer la ligne. C'est obligatoirement la cellule active puisque tu as double-cliqué dessus.
eric
0