Bonjour,
Je me permets de remonter un autre besoin relatif a la creation d'un userform.
Mon userform est cree et fonctionne bien pour le moment, il demande a un utilisateur de completer un formulaire comprenant des dates et une liste deroulante, rien de bien exceptionnel.
Toutefois j'aurais besoin de votre aide pour plusieurs points de code, avant tout voici ce que j'ai d'ores et deja code :
Besoin de vous pour :
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 Private Sub DocumentReviewForm_Initialize() Option Explicit Dim Ws As Worksheet Dim J As Long Dim I As Integer ComboBox1.ColumnCount = 1 ComboBox2.ColumnCount = 1 ComboBox1.List() = Array("x", "y", "z", "s", "g") ComboBox2.List() = Array("x", "y", "z", "s", "g") Set Ws = Sheets("bASE") End Sub Private Sub CommandButton1_Click() ' Parametre du bouton OK Save = MsgBox("Do you want to save your data on the table ?", vbYesNo) 'il faut ajouter le fait que ca doit se sauvegarder sur la ligne qui concerne la property If Save = vbYes Then With Sheets("Property view") .Range("F6").Value = TextBox_numero1 .Range("G6").Value = TextBox_numero2 .Range("H6").Value = ComboBox_numero1 .Range("I6").Value = TextBox_numero3 .Range("J6").Value = TextBox_numero4 .Range("K6").Value = ComboBox_numero2 End With End If If Save = vbNo Then End End If End Sub Private Sub CommandButton2_Click() ' Parametre du bouton cancel End End Sub Private Sub ComboBox2_Change() ' Force CAPS pour Combobox2 ComboBox2.Text = UCase(ComboBox2.Text) End Sub Private Sub TextBox1_Change() ' Force CAPS pour Textbox1 TextBox1.Text = UCase(TextBox1.Text) End Sub Private Sub TextBox2_Change() ' Force format date pour Textbox2 'Forcer format xx/xx/xxxx Dim Valeur As Byte TextBox2.MaxLength = 10 'nb caracteres maxi dans textbox Valeur = Len(TextBox2) If Valeur = 2 Or Valeur = 5 Then TextBox2 = TextBox2 & "/" End Sub Private Sub TextBox3_Change() ' Force format date pour Textbox3 'Forcer format xx/xx/xxxx Dim Valeur As Byte TextBox3.MaxLength = 10 'nb caracteres maxi dans textbox Valeur = Len(TextBox3) If Valeur = 2 Or Valeur = 5 Then TextBox3 = TextBox3 & "/" End Sub Private Sub TextBox6_Change() ' Force format date pour Textbox6 'Forcer format xx/xx/xxxx Dim Valeur As Byte TextBox6.MaxLength = 10 'nb caracteres maxi dans textbox Valeur = Len(TextBox6) If Valeur = 2 Or Valeur = 5 Then TextBox6 = TextBox6 & "/" End Sub Private Sub TextBox7_Change() ' Force format date pour Textbox7 'Forcer format xx/xx/xxxx Dim Valeur As Byte TextBox7.MaxLength = 10 'nb caracteres maxi dans textbox Valeur = Len(TextBox7) If Valeur = 2 Or Valeur = 5 Then TextBox7 = TextBox7 & "/" End Sub Private Sub UserForm_Click() End Sub
1. Lorsque l'utilisateur a termine, qu'il clique sur OK et qu'il confirme qu'il veut sauvegarder, les donnees devraient s'enregistrer sur la plage determinee... mais ca ne fonctionne pas. Voici la partie du code concernee :
2. (Attention, prise de tete....) J'aimerais que l'utilisateur saisisse en premier et de facon obligatoire une adresse dans la premiere textbox. Cette valeur servira a chercher si l'adresse existe deja dans une autre sheet. En gros, cela donnerait cela en texte :
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 Private Sub CommandButton1_Click() ' Parametre du bouton OK Save = MsgBox("Do you want to save your data on the table ?", vbYesNo) 'il faut ajouter le fait que ca doit se sauvegarder sur la ligne qui concerne la property If Save = vbYes Then With Sheets("Property view") .Range("F6").Value = TextBox_numero1 .Range("G6").Value = TextBox_numero2 .Range("H6").Value = ComboBox_numero1 .Range("I6").Value = TextBox_numero3 .Range("J6").Value = TextBox_numero4 .Range("K6").Value = ComboBox_numero2 End With End If If Save = vbNo Then End End If End Sub
User enter X dans property field
Si x =x dans Sheet 1 Range y alors update range y de x avec les donnees Z saisies par user et si Z deja presentes pour cette property dans range y sheet 1 alors les remplacer par new Z
Si x not found dans sheet 1 range y alors pas d'update et msgbox qui signale que la property n'existe pas et qu'il faut utiliser la fonction add property avant d'updater des infos
J'espere que je suis claire
3. J'ai code de facon a ce que mon user viennent chercher des donneees de mon sheet base pour mes deux listes deroulantes. toutefois quand je ferme mon code et reessaye il ne maffiche que des donnees vides...quand je le fait avec la console ouverte il me propose les donnees que je lui demande. Pourquoi ne le fait il pas quand ma console est fermee ? Voici le code concerne :
Merci beaucoup pour votre aide !
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 Private Sub DocumentReviewForm_Initialize() Option Explicit Dim Ws As Worksheet Dim J As Long Dim I As Integer ComboBox1.ColumnCount = 1 ComboBox2.ColumnCount = 1 ComboBox1.List() = Array("x", "y", "z", "s", "g") ComboBox2.List() = Array("x", "y", "z", "s", "g") Set Ws = Sheets("bASE") End Sub







. Voici la partie du code concernee :
Répondre avec citation
Partager