Userform - VBA
Résolu/Fermé
xavier62000
Messages postés
65
Date d'inscription
lundi 25 juin 2018
Statut
Membre
Dernière intervention
16 mars 2024
-
14 août 2018 à 23:31
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 - 15 août 2018 à 14:31
xavier62000 Messages postés 65 Date d'inscription lundi 25 juin 2018 Statut Membre Dernière intervention 16 mars 2024 - 15 août 2018 à 14:31
2 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 775
Modifié le 15 août 2018 à 09:37
Modifié le 15 août 2018 à 09:37
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
65
Date d'inscription
lundi 25 juin 2018
Statut
Membre
Dernière intervention
16 mars 2024
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