Userform - VBA
Résolu
xavier62000
Messages postés
72
Date d'inscription
lundi 25 juin 2018
Statut
Membre
Dernière intervention
9 juin 2025
-
14 août 2018 à 23:31
xavier62000 Messages postés 72 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 9 juin 2025 -
xavier62000 Messages postés 72 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 9 juin 2025 -
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
Patrice33740
Messages postés
8561
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
15 mars 2025
1 780
15 août 2018 à 09:35
15 août 2018 à 09:35
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
xavier62000
Messages postés
72
Date d'inscription
lundi 25 juin 2018
Statut
Membre
Dernière intervention
9 juin 2025
2
15 août 2018 à 14:31
15 août 2018 à 14:31
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