Conversion d'une forule Excel en code VBA
pricer
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour
J'utilise une formule sous Excel (2003) qui a la forme suivante :
=si(Duree_Amort*1+1=An_Amort;Montant*Indice;0)
+si(Duree_Amort*2+1=An_Amort;Montant*Indice;0)
+si(Duree_Amort*3+1=An_Amort;Montant*Indice;0)
+si(Duree_Amort*4+1=An_Amort;Montant*Indice;0)
+si(Duree_Amort*5+1=An_Amort;Montant*Indice;0)
En fait, Duree_Amort, An_Amort, Montant, Indice sont, au niveau de ma formule, des références à des cellules.
Est-ce que quelqu'un pourrait m'aider à traduire cette formule Excel en fonction VBA de type :
Public Function CalcAmort(Duree_Amort, An_Amort, Montant, Indice As Variant)
Dim Amortissement As Variant
If Duree_Amort * 1 + 1 = An_Amort Then
Amortissement = Montant * Indice
End If
CalcAmort = Amortissement
....
End Function
Merci par avance pour toute aide.
J'utilise une formule sous Excel (2003) qui a la forme suivante :
=si(Duree_Amort*1+1=An_Amort;Montant*Indice;0)
+si(Duree_Amort*2+1=An_Amort;Montant*Indice;0)
+si(Duree_Amort*3+1=An_Amort;Montant*Indice;0)
+si(Duree_Amort*4+1=An_Amort;Montant*Indice;0)
+si(Duree_Amort*5+1=An_Amort;Montant*Indice;0)
En fait, Duree_Amort, An_Amort, Montant, Indice sont, au niveau de ma formule, des références à des cellules.
Est-ce que quelqu'un pourrait m'aider à traduire cette formule Excel en fonction VBA de type :
Public Function CalcAmort(Duree_Amort, An_Amort, Montant, Indice As Variant)
Dim Amortissement As Variant
If Duree_Amort * 1 + 1 = An_Amort Then
Amortissement = Montant * Indice
End If
CalcAmort = Amortissement
....
End Function
Merci par avance pour toute aide.
A voir également:
- Conversion d'une forule Excel en code VBA
- Code ascii - Guide
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Mise en forme conditionnelle excel - Guide
- Word et excel gratuit - Guide
2 réponses
Bonjour,
Voici la réponse :
Public Function CalcAmort(Duree_Amort, An_Amort, Montant, Indice As Variant)
Dim Amortissement As Variant
If range("Duree_Amort") * 1 + 1 = range("An_Amort") Then
range("Amortissement")= range("Montant") * range("Indice")
End If
CalcAmort = range("Amortissement").value
....
End Function
Voici la réponse :
Public Function CalcAmort(Duree_Amort, An_Amort, Montant, Indice As Variant)
Dim Amortissement As Variant
If range("Duree_Amort") * 1 + 1 = range("An_Amort") Then
range("Amortissement")= range("Montant") * range("Indice")
End If
CalcAmort = range("Amortissement").value
....
End Function
Bonjour,
Tu répète trop de fois la même chose !!
Mais ta fonction Excel pourrait aussi être simplifiée par
A+
Tu répète trop de fois la même chose !!
Public Function CalcAmort(Duree_Amort As Range, An_Amort As Range, Montant As Range, Indice As Range) If (Duree_Amort.Value * 5) + 1 <= An_Amort.Value Then CalcAmort = Montant.Value * Indice.Value End If End Function
Mais ta fonction Excel pourrait aussi être simplifiée par
=si((Duree_Amort*5) + 1 <=An_Amort; Montant*Indice; 0)
A+