Userform - VBA
Résolu
xavier62000
Messages postés
72
Date d'inscription
Statut
Membre
Dernière intervention
-
xavier62000 Messages postés 72 Date d'inscription Statut Membre Dernière intervention -
xavier62000 Messages postés 72 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 :
il faut écrire :
Ici un excellent cours VBA gratuit :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
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
2°) Dans le module de la feuille « Listing »
3°) Dans le module de l’userform
Pour la validation je regarderai après car je dois rendre inactif certains boutons
Peux tu me faire savoir ce qui ne colle pas
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