Userform - VBA
Résolu
xavier62000
Messages postés
106
Date d'inscription
Statut
Membre
Dernière intervention
-
xavier62000 Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
xavier62000 Messages postés 106 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Je cherche à renvoyer les valeurs de la feuille de calcul "Listing" en double cliquant sur le N° de licence dans l'Userform dans les champs respectifs.
A savoir que toutes les données seront saisies à partir de l'userform et par conséquent que l'on peut pas écrire directement dans la feuille de calcul qui sera protégée par un MDP.
Y a t-il une bonne ame pour m'écrire un bout de code SVP
Merci d'avance
lien de partage : https://mon-partage.fr/f/n0utSxJa/
Je cherche à renvoyer les valeurs de la feuille de calcul "Listing" en double cliquant sur le N° de licence dans l'Userform dans les champs respectifs.
A savoir que toutes les données seront saisies à partir de l'userform et par conséquent que l'on peut pas écrire directement dans la feuille de calcul qui sera protégée par un MDP.
Y a t-il une bonne ame pour m'écrire un bout de code SVP
Merci d'avance
lien de partage : https://mon-partage.fr/f/n0utSxJa/
2 réponses
-
Bonjour,
En VBA, il faut absolument éviter d'utiliser .Select, ActiveCell, Selection, ...
Au lieu de :Sheets("listing").Activate Range("A1").Select Selection.End(xlDown).Select Selection.Offset(1, 0).Select ActiveCell = cbxclub.Value ActiveCell.Offset(0, 2).Value = Txtlicence ActiveCell.Offset(0, 3).Value = TxtNom ActiveCell.Offset(0, 4).Value = Txtprenom ActiveCell.Offset(0, 5).Value = Txtdate ActiveCell.Offset(0, 6).Value = Txt_clt_Aller_Ufolep ActiveCell.Offset(0, 7).Value = Txt_clt_retour_Ufolep ActiveCell.Offset(0, 8).Value = Txt_clt_Aller_FFTT ActiveCell.Offset(0, 9).Value = Txt_clt_retour_FFTT ActiveCell.Offset(0, 10).Value = Txt_club_FFTT ActiveCell.Offset(0, 11).Value = cbxmute
il faut écrire :With Sheets("listing").Range("A1").End(xlDown).Offset(1, 0) .Value = cbxclub.Value .Offset(0, 2).Value = Txtlicence.Value .Offset(0, 3).Value = TxtNom.Value .Offset(0, 4).Value = Txtprenom.Value .Offset(0, 5).Value = Txtdate.Value .Offset(0, 6).Value = Txt_clt_Aller_Ufolep.Value .Offset(0, 7).Value = Txt_clt_retour_Ufolep.Value .Offset(0, 8).Value = Txt_clt_Aller_FFTT.Value .Offset(0, 9).Value = Txt_clt_retour_FFTT.Value .Offset(0, 10).Value = Txt_club_FFTT.Value .Offset(0, 11).Value = cbxmute.Value End With
Ici un excellent cours VBA gratuit :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
-
Bonjour Patrice,
Quand je double click sur une cellule de la feuille de calcul « Lisitng » l’userform s’affiche (pas de problème).
Normalement, si j’ai bien compris les tutos et forum, l’userform devrait s’afficher avec les valeurs des différentes colonnes de la feuille « Listing ». Ce qui ne fait pas. Pour ce faire :
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°) 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
Pour la validation je regarderai après car je dois rendre inactif certains boutons
Peux tu me faire savoir ce qui ne colle pas