Bonjour à tous,
Voilà: je voudrai récuperer dans un controle, le résultat d'une fonction. La fonction ... fonctionne, mais je n'arrive pas à afficher (et donc à enregistrer) le résultat:
Voici la procédure qui appelle la fonction:
et la fonction elle même:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Argile_horizon2_AfterUpdate() Dim i As Integer If ([limon_horizon2] + [Argile_horizon2] > 1000) Then i = MsgBox("Pour info : Le cumul des granulométries doit être inférieur à 1000", vbOKOnly) End If Texture_H2 = calcul_texture(Me.Argile_horizon2, Me.limon_horizon2) End Sub
J'ai testé cette fonction comme une "Sub"...
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 Public Function calcul_texture(Argile As Integer, Limon As Integer) As String Dim i As Integer Dim texture As String If Argile > 0 Then If Limon > 0 Then If Argile < 125 Then If Limon < 250 Then texture = "sable" Else If Limon < 425 Then texture = "sable limoneux" Else If Limon < 700 Then texture = "limon sableux" Else texture = "limon pur" End If End If End If Else If Argile < 225 Then If Limon < 250 Then texture = "sable argileux" Else If Limon < 370 Then texture = "sable argilo-limoneux" Else If Limon < 650 Then texture = "limon sablo_argileux" Else texture = "limon" End If End If End If Else If Argile < 325 Then If Limon < 250 Then texture = "argilo-sableux" Else If Limon < 570 Then texture = "limon argilo-sableux" Else texture = "limon argileux" End If End If Else If Argile < 450 Then If Limon < 225 Then texture = "argile sableuse" Else If Limon < 500 Then texture = "argile limono-sableuse" Else texture = "argile limoneuse" End If End If Else If Argile < 600 Then texture = "argile" Else texture = "argile lourde" End If End If End If End If End If Else i = MsgBox("Erreur d'interprétation de la texture", vbOKOnly, "Texture") End If Else i = MsgBox("Erreur d'interprétation de la texture", vbOKOnly, "Texture") End If End Function
Là ça marche bien, mais vu le nombre de fois qu'il faut que je répète un appel à une fonction semble plus adapté si j'ai bien compris...
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 Public Sub Argile_horizon2_AfterUpdate() Dim i As Integer Dim texture As String Dim Argile As Integer Dim Limon As Integer Argile = Argile_horizon2 Limon = limon_horizon2 If Argile > 0 Then If Limon > 0 Then ..................... ................. End If Texture_H2 = texture End Sub
Alors, après votre expertise, où est ma bévue de débutant ??
Merci d'avance !
Partager