Bonjour, voici mon code j'espère que vous reussirez a comprendre :
je vous explique un peu ce que je souhaite même si c'est écrit dans le code.
J'ai deux userform qui doivent être liée lors de la saisie d'information.
ce que je souhaite c'est une formule logique qui me dise :
si la liste des lettre jaune n'est pas selectionné alors
Ecris les données à la suite tant que la ligne est en blanc
sinon cherche la valeur de lettrejaune ( c'est une listbox) et copie l'ensemble (tout le reste des intitulés filières, pilote etc... dans laquelle se trouve la lettre jaune)
Merci voici le code de la userform 1 où sont saisies les premières données
code userform3 ( c'est la où existe le problème)
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
74
75
76
77 Private Sub CommandButton2_Click() 'bouton copier If TextBox3 = "" Or TextBox2 = "" Or TextBox1 = "" Then MsgBox "veuillez saisir tout les champs" End If 'Ecris les données à la suite tant que la ligne est en blanc Dim i As String i = 3 Do While (Sheets(1).Cells(i, 2) <> "") And (i <= 2000) i = i + 1 Loop Sheets(1).Cells(i, 2) = TextBox1.Text Sheets(1).Cells(i, 3) = TextBox2.Text Sheets(1).Cells(i, 4) = TextBox3.Text Sheets(1).Cells(i, 8) = ListBox1.Value MsgBox "Les données sont copiées" If MsgBox("Voulez vous saisir une nouvelle lettre ?", vbYesNo, "Demande de confirmation") = vbYes Then 'efface à nouveau le contenu TextBox1 = "" TextBox2 = "" TextBox3 = "" Else Unload UserForm1 End If End Sub Private Sub CommandButton3_Click() 'bouton exit Unload UserForm1 End Sub Private Sub Label1_Click() End Sub Private Sub TextBox1_() 'saisie de la date du calendrier End Sub Private Sub ListBox1_Click() 'Destinataires End Sub Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 'appel de la procédure click sur textbox1 Call UserForm2.Show End Sub Private Sub TextBox2_Change() 'inscription de la référence de la lettre jaune End Sub Private Sub UserForm_Initialize() 'appel à la liste ListBox1.ColumnHeads = True ListBox1.RowSource = "feuil3!b3:b19" End Sub
Voila si jamais vous voyez autre chose qui serait utilse de mettre je suis à votre écoute merci.
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98 Private Sub CommandButton2_Click() 'bouton copier 'si la liste des lettre jaune n'est pas selectionné alors 'Ecris les données à la suite tant que la ligne est en blanc 'sinon cherche la valeur de lettrejaune et copie l'ensemble dans laquelle se trouve 'la lettre jaune Dim i As String i = 3 Do While (Sheets(1).Cells(i, 2) <> "") And (i <= 2000) i = i + 1 Loop Sheets(1).Cells(i, 5) = FILIERES.Value Sheets(1).Cells(i, 6) = TYPEACTION.Value Sheets(1).Cells(i, 7) = Libelleaction.Text Sheets(1).Cells(i, 9) = PILOTE.Value Sheets(1).Cells(i, 10) = COPILOTE.Value Sheets(1).Cells(i, 11) = SUPPORT.Value Sheets(1).Cells(i, 12) = commentaire.Text Sheets(1).Cells(i, 18) = COPILOTE.Value MsgBox "les données se sont copiées" If MsgBox("Voulez vous saisir une nouvelle action ?", vbYesNo, "Demande de confirmation") = vbYes Then 'efface à nouveau le contenu FILIERES = "" TYPEACTION = "" PILOTE = "" COPILOTE = "" SUPPORT = "" LETTREJAUNE = "" COMITE = "" Libelleaction = "" commentaire = "" Else Unload UserForm3 End If End Sub Private Sub CommandButton3_Click() 'bouton annuler FILIERES = "" TYPEACTION = "" PILOTE = "" COPILOTE = "" SUPPORT = "" LETTREJAUNE = "" COMITE = "" Libelleaction = "" commentaire = "" End Sub Private Sub CommandButton4_Click() Unload UserForm3 End Sub Private Sub Label1_Click() End Sub Private Sub Label8_Click() End Sub Private Sub UserForm_Initialize() FILIERES.ColumnHeads = True TYPEACTION.ColumnHeads = True PILOTE.ColumnHeads = True COPILOTE.ColumnHeads = True SUPPORT.ColumnHeads = True LETTREJAUNE.ColumnHeads = True COMITE.ColumnHeads = True FILIERES.RowSource = "feuil3!f3:f19" TYPEACTION.RowSource = "feuil3!e3:e19" PILOTE.RowSource = "feuil3!c3:c19" COPILOTE.RowSource = "feuil3!d3:d19" SUPPORT.RowSource = "feuil3!h3:h19" LETTREJAUNE.RowSource = "feuil2!d3:d2000" COMITE.RowSource = "feuil3!g3:g19" End Sub
pour des question de confidentialiter j'ai enlever les logos
voici le fichier pour comprendre au mieu
Partager