Double click - Userform

Résolu
xavier62000 Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
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 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

Voici le classeur modifié:

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

voir si cela convient?

1
danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
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 72 Date d'inscription   Statut Membre Dernière intervention   2
 
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 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
Exactement, ta macro s'appelle "Private Sub userform_initialise()
" au lieu de "Private Sub UserForm_Initialize()"
0
xavier62000 Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   2
 
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 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
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 72 Date d'inscription   Statut Membre Dernière intervention   2
 
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 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
https://mon-partage.fr/f/bwyNZ2w4/

Daniel
0
xavier62000 Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   2
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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 72 Date d'inscription   Statut Membre Dernière intervention   2
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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 72 Date d'inscription   Statut Membre Dernière intervention   2
 
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 72 Date d'inscription   Statut Membre Dernière intervention   2
 
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 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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 72 Date d'inscription   Statut Membre Dernière intervention   2
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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