Regarde ton post #1 où apparait cboParoiAsso?
Que de temps gâché.
Regarde ton post #1 où apparait cboParoiAsso?
Que de temps gâché.
en effet iam sorry.
cboParoiAsso permet de déterminer alphaM si c'est le plancher qui est selectionné dans cboTypParoi et AlphaP si c'est le mur qui est selectionné dans cboTypParoi et donc cboTypParoi donne soit AlphaM soit AlphaP selon la selection (mur ou plancher) autrement dit AlphaM et AlphaP "coexistent"
On va y arriver
C'est bon j'ai réussi j'ai créé deux fonctions que voici:
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 '''''sous-routine pour le coefficient de Sabine 'Paramètres de la fonction: 'Tb: Tableau de données 'i Ligne de données 'Mur: Optionnel, Omise ou True pour cboTypParoi.Text="Mur". False pour cboTypParoi.Text="Plancher" Public Function AlphaMur(ByVal Tb As Variant, ByVal i As Byte) As Double Dim Inpt As Variant Dim str As String Dim n As Byte If i <= UBound(Tb, 1) Then If UserForm1.cboTypParoi.Text = "Mur" Then str = UserForm1.cboMatParoi.Text Select Case str Case "Béton dense": n = 3 Case "Béton léger": n = 4 Case "Parpaings pleins": n = 5 Case "Parpaings creux": n = 6 Case "Brique pleine": n = 8 Case "Brique creuse": n = 7 Case "Pan de bois": n = 9 Case "Pan de fer": n = 10 Case "Moellon": n = 11 End Select ElseIf UserForm1.cboTypParoi.Text = "Plancher" Then str = UserForm1.cboNatParoi.Text Select Case str Case "Dalle béton", "Dalle béton sur poutrelle métallique", "Dallage sur terre plein", "Bac collaborant", "Chape béton": n = 3 Case "Plancher bois": n = 13 Case "Poutrelle métallique": n = 14 End Select End If If n > 0 Then AlphaMur = Tb(i, n) End If End Function
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 Public Function AlphaPlancher(ByVal Tb As Variant, ByVal i As Byte) As Double Dim Inpt As Variant Dim str As String Dim n As Byte If i <= UBound(Tb, 1) Then If UserForm1.cboTypParoi.Text = "Mur" Then str = UserForm1.cboParoiAsso.Text Select Case str Case "Dalle béton", "Dalle béton sur poutrelle métallique", "Dallage sur terre plein", "Bac collaborant", "Chape béton": n = 3 Case "Plancher bois": n = 13 Case "Poutrelle métallique": n = 14 End Select ElseIf UserForm1.cboTypParoi.Text = "Plancher" Then str = UserForm1.cboParoiAsso.Text Select Case str Case "Béton dense": n = 3 Case "Béton léger": n = 4 Case "Parpaings pleins": n = 5 Case "Parpaings creux": n = 6 Case "Brique pleine": n = 8 Case "Brique creuse": n = 7 Case "Pan de bois": n = 9 Case "Pan de fer": n = 10 Case "Moellon": n = 11 End Select End If If n > 0 Then AlphaPlancher = Tb(i, n) End If End Functioncette fois SI cboTypParoi.text="Mur" alors AlphaM = AlphaMur et AlphaP = AlphaPlancher et SI cboTypParoi.text="Plancher" alors AlphaM = AlphaPlancher et AlphaP = AlphaMur il ne rste plus qu'à y mettre une condition du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 AlphaM = AlphaMur(Inpt, i) AlphaP = AlphaPlancher(Inpt, i) Debug.Print i, AlphaP, AlphaM
et le tour est joué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If UserForm1.cboTypParoi.Text = "Mur" Then A = (AlphaP * ((2 * CDbl(UserForm1.TxtLargPlanch.Value) * CDbl(UserForm1.TxtLongPlanch.Value)))) + ((AlphaM * CDbl(UserForm1.TxtHteurPlaf.Value) ElseIf UserForm1.cboTypParoi.Text = "Plancher" Then A = (AlphaM * ((2 * CDbl(UserForm1.TxtLargPlanch.Value) * CDbl(UserForm1.TxtLongPlanch.Value)))) + AlphaP * CDbl(UserForm1.TxtHteurPlaf.Value) End If
Merci pour votre aide j'y serai pas arrivé sans vous!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager