Bonjour à tous,
J'ai crée deux fonctions sous vba et je souhaiterais ne pas les exécuter dans Excel en saisissant les arguments.
J'ai réussi à obtenir ce que je souhaitais avec la première fonction mais pas avec la 2ème.
Voici le code de la première:
Voici le code de la 2ème fonction faisant appel à la première ainsi qu'à une plage de cellule d'un tableau sous "Excel"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Function hrels() Dim semelle As Byte semelle = Range("_semelle") Call b If semelle = 1 Then hrels = 1.5 * b End If End Function
Je ne souhaite surtout pas que l'utilisateur saisisse lui même les cellules comme indiqué dans le 2ème argument car les lignes du tableau sont variables.
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 Function ple_els(hrels, CouchesGéotech) Dim tblGéo Dim i As Integer Dim ep_i, ple_prod, ep_cumul, pl_i, Ple As Double ple_prod = 1 tblGéo = CouchesGéotech For i = 1 To 100 ep_i = tblGéo(i, 2) If IsEmpty(ep_i) Then Exit For ep_cumul = ep_cumul + ep_i If hrels >= ep_cumul Then pl_i = tblGéo(i, 7) ple_prod = ple_prod * pl_i ^ (ep_i) Else ple_prod = ple_prod * pl_i ^ (hrels - (ep_cumul - ep_i)) Exit For End If Next If IsEmpty(ep_i) Then Ple = " Nombre de couches de sol insuffisante (hr>cumul des épaisseurs de couches), veuillez ajouter des couches de sol" Else Ple = ple_prod ^ (1 / hrels) End If End Function
Du coup je pensais créer une boucle for qui parcourt chaque ligne du tableau et qui me récupére la valeur de la (ième ligne;2è colonne). Mais ne peut on pas déclarer le tableau sous excel comme une variable de type "array" et éviter toutes ces boucles?
merci d'avance
Partager