bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'V ide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-R ivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la provinc e
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = " p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'V ide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-R ivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la provinc e
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = " p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'V ide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-R ivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la provinc e
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = " p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'Vide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-Rivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la province
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = "p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'Vide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-Rivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la province
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = "p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'Vide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-Rivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la province
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = "p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
Bonsoir,
Non testé.
@+
FxM
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
with Sheets("Frais")
billet = False
select case code
case "": vehicule = ""
case "A","a"
If distance < .range("C7") Then
vehicule = .range("E6")
ElseIf distance < .range("C8") Then
vehicule = .range("E7")
ElseIf distance < .range("C9") Then
vehicule = .range("E8")
Else
billet = True
'attention à l'ordre des paramètres !
vehicule = autobus(billet, region)
End If
case "B", "b"
If distance < .range("C11") Then
vehicule = .range("E10")
ElseIf distance < .range("C12") Then
vehicule = .range("E11")
ElseIf distance < .range("C13") Then
vehicule = .range("E12")
ElseIf distance < .range("C14") Then
vehicule = .range("E13")
Else
billet = True
'idem
vehicule = autobus(billet, region)
End If
case "C", "c", "P", "p": vehicule = " -"
case else: vehicule = ""
end select
end with
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
if billet then
'ce qui suit sur une ligne !
autobus = Sheets("Frais").Range("B21:B29").find(Sheets("Frais
dépl").Range("k8")).offset(0,3)
End Function
Inkel a écrit :bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'Vide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-Rivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la province
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = "p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
Bonsoir,
Non testé.
@+
FxM
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
with Sheets("Frais")
billet = False
select case code
case "": vehicule = ""
case "A","a"
If distance < .range("C7") Then
vehicule = .range("E6")
ElseIf distance < .range("C8") Then
vehicule = .range("E7")
ElseIf distance < .range("C9") Then
vehicule = .range("E8")
Else
billet = True
'attention à l'ordre des paramètres !
vehicule = autobus(billet, region)
End If
case "B", "b"
If distance < .range("C11") Then
vehicule = .range("E10")
ElseIf distance < .range("C12") Then
vehicule = .range("E11")
ElseIf distance < .range("C13") Then
vehicule = .range("E12")
ElseIf distance < .range("C14") Then
vehicule = .range("E13")
Else
billet = True
'idem
vehicule = autobus(billet, region)
End If
case "C", "c", "P", "p": vehicule = " -"
case else: vehicule = ""
end select
end with
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
if billet then
'ce qui suit sur une ligne !
autobus = Sheets("Frais").Range("B21:B29").find(Sheets("Frais
dépl").Range("k8")).offset(0,3)
End Function
Inkel a écrit :
bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'Vide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-Rivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la province
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = "p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
Bonsoir,
Non testé.
@+
FxM
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
with Sheets("Frais")
billet = False
select case code
case "": vehicule = ""
case "A","a"
If distance < .range("C7") Then
vehicule = .range("E6")
ElseIf distance < .range("C8") Then
vehicule = .range("E7")
ElseIf distance < .range("C9") Then
vehicule = .range("E8")
Else
billet = True
'attention à l'ordre des paramètres !
vehicule = autobus(billet, region)
End If
case "B", "b"
If distance < .range("C11") Then
vehicule = .range("E10")
ElseIf distance < .range("C12") Then
vehicule = .range("E11")
ElseIf distance < .range("C13") Then
vehicule = .range("E12")
ElseIf distance < .range("C14") Then
vehicule = .range("E13")
Else
billet = True
'idem
vehicule = autobus(billet, region)
End If
case "C", "c", "P", "p": vehicule = " -"
case else: vehicule = ""
end select
end with
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
if billet then
'ce qui suit sur une ligne !
autobus = Sheets("Frais").Range("B21:B29").find(Sheets("Frais
dépl").Range("k8")).offset(0,3)
End Function
Inkel a écrit :bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'Vide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-Rivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la province
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = "p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
Salut à toi
Tu peux réduire cette partie :
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
ainsi :
For i = 1 to 9
r & i = Sheets("Frais").Range("B2" & i)
P & i = Sheets("Frais").Range("e2" & i)
If billet = True Then
ElseIf region = r & i Then
autobus = P & i
End If
Next
Je n'ai pas testé donc à essayer
Donnes moi des nouvelles !!!!!
Salut à toi
Tu peux réduire cette partie :
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
ainsi :
For i = 1 to 9
r & i = Sheets("Frais").Range("B2" & i)
P & i = Sheets("Frais").Range("e2" & i)
If billet = True Then
ElseIf region = r & i Then
autobus = P & i
End If
Next
Je n'ai pas testé donc à essayer
Donnes moi des nouvelles !!!!!
Salut à toi
Tu peux réduire cette partie :
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
ainsi :
For i = 1 to 9
r & i = Sheets("Frais").Range("B2" & i)
P & i = Sheets("Frais").Range("e2" & i)
If billet = True Then
ElseIf region = r & i Then
autobus = P & i
End If
Next
Je n'ai pas testé donc à essayer
Donnes moi des nouvelles !!!!!
Bonsoir,
Non testé.
@+
FxM
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
with Sheets("Frais")
billet = False
select case code
case "": vehicule = ""
case "A","a"
If distance < .range("C7") Then
vehicule = .range("E6")
ElseIf distance < .range("C8") Then
vehicule = .range("E7")
ElseIf distance < .range("C9") Then
vehicule = .range("E8")
Else
billet = True
'attention à l'ordre des paramètres !
vehicule = autobus(billet, region)
End If
case "B", "b"
If distance < .range("C11") Then
vehicule = .range("E10")
ElseIf distance < .range("C12") Then
vehicule = .range("E11")
ElseIf distance < .range("C13") Then
vehicule = .range("E12")
ElseIf distance < .range("C14") Then
vehicule = .range("E13")
Else
billet = True
'idem
vehicule = autobus(billet, region)
End If
case "C", "c", "P", "p": vehicule = " -"
case else: vehicule = ""
end select
end with
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
if billet then
'ce qui suit sur une ligne !
autobus = Sheets("Frais").Range("B21:B29").find(Sheets("Frais
dépl").Range("k8")).offset(0,3)
End Function
Inkel a écrit :bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'Vide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-Rivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la province
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = "p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
Bonsoir,
Non testé.
@+
FxM
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
with Sheets("Frais")
billet = False
select case code
case "": vehicule = ""
case "A","a"
If distance < .range("C7") Then
vehicule = .range("E6")
ElseIf distance < .range("C8") Then
vehicule = .range("E7")
ElseIf distance < .range("C9") Then
vehicule = .range("E8")
Else
billet = True
'attention à l'ordre des paramètres !
vehicule = autobus(billet, region)
End If
case "B", "b"
If distance < .range("C11") Then
vehicule = .range("E10")
ElseIf distance < .range("C12") Then
vehicule = .range("E11")
ElseIf distance < .range("C13") Then
vehicule = .range("E12")
ElseIf distance < .range("C14") Then
vehicule = .range("E13")
Else
billet = True
'idem
vehicule = autobus(billet, region)
End If
case "C", "c", "P", "p": vehicule = " -"
case else: vehicule = ""
end select
end with
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
if billet then
'ce qui suit sur une ligne !
autobus = Sheets("Frais").Range("B21:B29").find(Sheets("Frais
dépl").Range("k8")).offset(0,3)
End Function
Inkel a écrit :
bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'Vide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-Rivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la province
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = "p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
Bonsoir,
Non testé.
@+
FxM
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
with Sheets("Frais")
billet = False
select case code
case "": vehicule = ""
case "A","a"
If distance < .range("C7") Then
vehicule = .range("E6")
ElseIf distance < .range("C8") Then
vehicule = .range("E7")
ElseIf distance < .range("C9") Then
vehicule = .range("E8")
Else
billet = True
'attention à l'ordre des paramètres !
vehicule = autobus(billet, region)
End If
case "B", "b"
If distance < .range("C11") Then
vehicule = .range("E10")
ElseIf distance < .range("C12") Then
vehicule = .range("E11")
ElseIf distance < .range("C13") Then
vehicule = .range("E12")
ElseIf distance < .range("C14") Then
vehicule = .range("E13")
Else
billet = True
'idem
vehicule = autobus(billet, region)
End If
case "C", "c", "P", "p": vehicule = " -"
case else: vehicule = ""
end select
end with
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
if billet then
'ce qui suit sur une ligne !
autobus = Sheets("Frais").Range("B21:B29").find(Sheets("Frais
dépl").Range("k8")).offset(0,3)
End Function
Inkel a écrit :bonjour,
J'ai fais ce code et c,est un de mes premier en VBA, et je dois dire
que je suis assez fier de moi du fait qu'il fonctionne !
Mais je sais qu'il n'est pas terrible au niveau de l'optimisation et
je sais qu'il pourrait être beaucoup plus court. Est-ce que quelqu'un
pourrait m'aider ?
Cela sert à calculer les frais de déplacement pour les employés, si
oui ou non et combien. Je peux envoyer le fichier si cela peut aider.
Merci.
Inkel ;-)
+++++++++++++++++++++++++++++++++++++++++++++++++++
Function vehicule(code, distance)
'Frais de déplacement : Axx = distance, FAxx = montant
'Sheets("Frais").Visible = True
billet = False
A60 = Sheets("Frais").Range("c7")
A91 = Sheets("Frais").Range("c8")
A121 = Sheets("Frais").Range("c9")
FA60 = Sheets("Frais").Range("e6")
FA91 = Sheets("Frais").Range("e7")
FA121 = Sheets("Frais").Range("e8")
B49 = Sheets("Frais").Range("c11")
B73 = Sheets("Frais").Range("c12")
B89 = Sheets("Frais").Range("c13")
B121 = Sheets("Frais").Range("c14")
FB49 = Sheets("Frais").Range("e10")
FB73 = Sheets("Frais").Range("e11")
FB89 = Sheets("Frais").Range("e12")
FB121 = Sheets("Frais").Range("e13")
If code = "" Then 'Vide
vehicule = ""
ElseIf code = "A" Or code = "a" Then 'Montréal, Trois-Rivières,
Québec
& Estrie
If distance < A60 Then
vehicule = FA60
ElseIf distance < A91 Then
vehicule = FA91
ElseIf distance < A121 Then
vehicule = FA121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "B" Or code = "b" Then 'Reste de la province
If distance < B49 Then
vehicule = FB49
ElseIf distance < B73 Then
vehicule = FB73
ElseIf distance < B89 Then
vehicule = FB89
ElseIf distance < B121 Then
vehicule = FB121
Else
billet = True
vehicule = autobus(region, billet)
End If
ElseIf code = "C" Or code = "c" Or code = "P" Or code = "p" Then
'Fournit par la compagnie
vehicule = " -"
Else
vehicule = ""
End If
'Sheets("Frais").Visible = False
End Function
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Function autobus(billet, region)
region = Sheets("Frais dépl").Range("k8")
r1 = Sheets("Frais").Range("B21")
r2 = Sheets("Frais").Range("B22")
r3 = Sheets("Frais").Range("B23")
r4 = Sheets("Frais").Range("B24")
r5 = Sheets("Frais").Range("B25")
r6 = Sheets("Frais").Range("B26")
r7 = Sheets("Frais").Range("B27")
r8 = Sheets("Frais").Range("B28")
r9 = Sheets("Frais").Range("B29")
P1 = Sheets("Frais").Range("e21")
P2 = Sheets("Frais").Range("e22")
P3 = Sheets("Frais").Range("e23")
P4 = Sheets("Frais").Range("e24")
P5 = Sheets("Frais").Range("e25")
P6 = Sheets("Frais").Range("e26")
P7 = Sheets("Frais").Range("e27")
P8 = Sheets("Frais").Range("e28")
P9 = Sheets("Frais").Range("e29")
If billet = True Then
ElseIf region = r1 Then
autobus = P1
ElseIf region = r2 Then
autobus = P2
ElseIf region = r3 Then
autobus = P3
ElseIf region = r4 Then
autobus = P4
ElseIf region = r5 Then
autobus = P5
ElseIf region = r6 Then
autobus = P6
ElseIf region = r7 Then
autobus = P7
ElseIf region = r8 Then
autobus = P8
ElseIf region = r9 Then
autobus = P9
End If
End Function
T'es sûr de ceci :
r = Sheets("Frais").Range("B2" & i)
p = Sheets("Frais").Range("e2" & i)
"FFO" a écrit dans le message de group e de discussion :
Rebonjour à toi
Effectivement honte à moi celà ne peux fonctionner
D'où la nécessité de tester avant de proposer
Mille excuses !!!!!
Je te propose plutôt ceci :
For i = 1 To 9
r = Sheets("Frais").Range("B2" & i)
p = Sheets("Frais").Range("e2" & i)
If billet = True Then
ElseIf region = r Then
autobus = p
End If
Next
Celà devrait mieux convenir
Dis moi !!!!
T'es sûr de ceci :
r = Sheets("Frais").Range("B2" & i)
p = Sheets("Frais").Range("e2" & i)
"FFO" <F...@discussions.microsoft.com> a écrit dans le message de group e de discussion :
289FEAB7-3B5C-412E-994A-283492AC9...@microsoft.com...
Rebonjour à toi
Effectivement honte à moi celà ne peux fonctionner
D'où la nécessité de tester avant de proposer
Mille excuses !!!!!
Je te propose plutôt ceci :
For i = 1 To 9
r = Sheets("Frais").Range("B2" & i)
p = Sheets("Frais").Range("e2" & i)
If billet = True Then
ElseIf region = r Then
autobus = p
End If
Next
Celà devrait mieux convenir
Dis moi !!!!
T'es sûr de ceci :
r = Sheets("Frais").Range("B2" & i)
p = Sheets("Frais").Range("e2" & i)
"FFO" a écrit dans le message de group e de discussion :
Rebonjour à toi
Effectivement honte à moi celà ne peux fonctionner
D'où la nécessité de tester avant de proposer
Mille excuses !!!!!
Je te propose plutôt ceci :
For i = 1 To 9
r = Sheets("Frais").Range("B2" & i)
p = Sheets("Frais").Range("e2" & i)
If billet = True Then
ElseIf region = r Then
autobus = p
End If
Next
Celà devrait mieux convenir
Dis moi !!!!