Bonjour,
j'ai un problème mais avant tout je vais vous expliquer ce que j'ai fait.
Deux pages dans mon classeur :
-Données (ce sont les données qui me permets d'alimenter mes liste déroulante)
-Suivi (colonne : DATE, Nom transporteur, Nom du salarié, type de NC, Détail de la NC).
Sur cette même feuille nous avons un bouton ajouter. Lorsque le bouton est cliquer nous ouvrons la userform 2. Sur cette userform2, nous retrouver des combobox et des textbox permettant de compléter la première ligne vide du tableau.
voici le code :
Jusqu'ici tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 Private Sub CommandButton1_Click() Dim c As Integer c = 7 While Worksheets("Suivi NC").Cells(c, 4) <> "" c = 1 + c Wend If ComboBox1.Value <> "" Then If ComboBox2.Value <> "" Then If ComboBox3.Value <> "" Then If TextBox1.Value <> "" Then If DTPicker1 <> "" Then Sheets("Suivi NC").Unprotect Worksheets("Suivi NC").Cells(c, 5).Value = ComboBox1.Value Worksheets("Suivi NC").Cells(c, 6).Value = ComboBox2.Value Worksheets("Suivi NC").Cells(c, 4).Value = ComboBox3.Value Worksheets("Suivi NC").Cells(c, 7).Value = TextBox1.Value Worksheets("Suivi NC").Cells(c, 8).Value = TextBox2.Value Worksheets("Suivi NC").Cells(c, 3).Value = DTPicker1.Value Sheets("Suivi NC").Protect Else MsgBox "Merci de bien vouloir écrire la date de la NC", vbOKOnly + vbInformation, "ATTENTION : Description de la NC non renseigné" End If Else MsgBox "Merci de bien vouloir écrire la description de la NC", vbOKOnly + vbInformation, "ATTENTION : Description de la NC non renseigné" End If Else MsgBox "Merci de bien vouloir indiquer le nom du Transporteur", vbOKOnly + vbInformation, "ATTENTION : Nom du Transporteur non renseigné" End If Else MsgBox "Merci de bien vouloir indiquer le type de NC", vbOKOnly + vbInformation, "ATTENTION : Type de NC non renseigné" End If Else MsgBox "Merci de bien vouloir indiquer le Nom du Chef de Quai", vbOKOnly + vbInformation, "ATTENTION : Nom du Chef de Quai non renseigné" End If End Sub Private Sub CommandButton2_Click() Unload UserForm2 End Sub Private Sub UserForm_Initialize() Dim i As Byte For i = 2 To 50 If Worksheets("Données").Cells(i, 2) = "" Then Exit For Else ComboBox1.AddItem Worksheets("Données").Cells(i, 2) End If Next i For i = 2 To 50 If Worksheets("Données").Cells(i, 1) = "" Then Exit For Else ComboBox2.AddItem Worksheets("Données").Cells(i, 1) End If Next i For i = 2 To 50 If Worksheets("Données").Cells(i, 3) = "" Then Exit For Else ComboBox3.AddItem Worksheets("Données").Cells(i, 3) End If Next i End Sub
J'ai par la suite recréer le même userforms pour modifier. Pour appeler ce Userform3 il suffit de double cliquer sur une cellule de la ligne souhaité. Une fois double cliquer s'affiche la userform 3
Ici encore tout va bien. Par contre dans mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Public Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim numligne, numcolonne As Integer If Not Intersect(Target, Range("C7:H1080")) Is Nothing Then numligne = Target.Row numcolonne = Target.Column If Worksheets("Suivi NC").Cells(numligne, 4) <> "" Then Cancel = True UserForm3.Show Else MsgBox "Cette ligne est vide, merci de bien vouloir cliquer une ligne renseigné pour la modifier ou la supprimer", vbOKOnly + vbInformation, "ATTENTION : Ligne vide" Cells(numligne, 3).Select End If End If End SubIl faut que j'arrive à récupérer les données de mes cellules liés à la ligne double cliquer. Pour cela il me faut le numéro de ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Private Sub UserForm_Initialize() Dim i As Byte For i = 2 To 50 If Worksheets("Données").Cells(i, 2) = "" Then Exit For Else ComboBox1.AddItem Worksheets("Données").Cells(i, 2) End If Next i For i = 2 To 50 If Worksheets("Données").Cells(i, 1) = "" Then Exit For Else ComboBox2.AddItem Worksheets("Données").Cells(i, 1) End If Next i For i = 2 To 50 If Worksheets("Données").Cells(i, 3) = "" Then Exit For Else ComboBox3.AddItem Worksheets("Données").Cells(i, 3) End If Next i End Sub
C'est ici que ça coince. Mon numéro de ligne je l'ai dansmais comment l'envoyer dansPublic Sub Worksheet_BeforeDoubleClick?Private Sub UserForm_Initialize()
Je ne sais pas si je me suis fait comprendre, je reste à disposition pour plus d'information. Je remercie d'avance toute cette communauté en espérant trouver quelqu'un qui peux me retirer cette épine du pied.
Partager