quelqu'un pourrait il m'aider =E0 trouver une fa=E7on plus ad=E9quate de
g=E9rer les amortissements d'immo en lin=E9aire et d=E9gressif.
Voici ce que j'ai en lin=E9aire mais c'est un peu long d=E9sol=E9 :(
Sub AmortLineaire()
'**************************************************************************=
******
'_________Ecrase les donn=E9es de la zone dans laquelle je vais
=E9crire_____________
'**************************************************************************=
******
Dim NomImmo As String
Dim DateDebut As Date
Dim Duree As Integer
Dim Taux As Double
Dim PrixAcquisitionHT As Double
Dim annee As Integer
Dim i As Integer 'compteur permettant d'identifier la premiere et
derniere ligne
'**************************************************************************=
******
'____________ La valeur des variables se trouvent dans une feuille
______________
'**************************************************************************=
******
'**************************************************************************=
*****
'_______________________ En t=EAte du tableau =E0 cr=E9er
____________________________
'**************************************************************************=
*****
Range("A10").Value =3D "Rang"
Range("B10").Value =3D "Ann=E9e"
Range("C10").Value =3D "Periode"
Range("D10").Value =3D "VNC D=E9but Exercice"
Range("E10").Value =3D "Amort lin=E9aire"
Range("F10").Value =3D "JANV" 'amortissement de janvier
Range("G10").Value =3D "FEV" 'amortissement de fevrier
Range("H10").Value =3D "MARS" 'amortissement de mars
Range("I10").Value =3D "AVRIL" 'amortissement d' avril
Range("J10").Value =3D "MAI" 'amortissement de mai
Range("K10").Value =3D "JUIN" 'amortissement de juin
Range("L10").Value =3D "JUILL" 'amortissement de juillet
Range("M10").Value =3D "AOUT" 'amortissemet de aout
Range("N10").Value =3D "SEPT" 'amortissement de septembre
Range("O10").Value =3D "OCT" 'amortissement de octobre
Range("P10").Value =3D "NOV" 'amortissement de novembre
Range("Q10").Value =3D "DEC" 'amortissement de d=E9cembre
Range("A10").Select
For i =3D 1 To Duree + 1
ActiveCell.Offset(i).Interior.ColorIndex =3D 8
ActiveCell.Offset(i, 0) =3D i 'on d=E9finit le nombre de rang soit le
nombre de ligne utilis=E9
Re, Le code pourrait donc de venir, suite à 1ère modification :
Sub AmortLineaire() 'Modifié le 02/11/2008 par MPFE '******************************************************************************** '_________Ecrase les données de la zone dans laquelle je vais écrire_____________ '********************************************************************************
Dim NomImmo As String Dim DateDebut As Date Dim Duree As Integer Dim Taux As Double Dim PrixAcquisitionHT As Double Dim annee As Integer Dim i As Integer 'compteur permettant d'identifier la premiere et derniere ligne
'******************************************************************************** '____________ La valeur des variables se trouvent dans une feuille ______________ '********************************************************************************
'******************************************************************************* '_______________________ En tête du tableau à créer ____________________________ '*******************************************************************************
Range("A10").Value = "Rang" Range("B10").Value = "Année" Range("C10").Value = "Periode" Range("D10").Value = "VNC Début Exercice" Range("E10").Value = "Amort linéaire" Range("F10").Value = "JANV" 'amortissement de janvier Range("G10").Value = "FEV" 'amortissement de fevrier Range("H10").Value = "MARS" 'amortissement de mars Range("I10").Value = "AVRIL" 'amortissement d' avril Range("J10").Value = "MAI" 'amortissement de mai Range("K10").Value = "JUIN" 'amortissement de juin Range("L10").Value = "JUILL" 'amortissement de juillet Range("M10").Value = "AOUT" 'amortissemet de aout Range("N10").Value = "SEPT" 'amortissement de septembre Range("O10").Value = "OCT" 'amortissement de octobre Range("P10").Value = "NOV" 'amortissement de novembre Range("Q10").Value = "DEC" 'amortissement de décembre
Range("A10").Select For i = 1 To Duree + 1 'ActiveCell.Offset(i).Interior.ColorIndex = 8 ActiveCell.Offset(i, 0) = i 'on définit le nombre de rang soit le nombre de ligne utilisé j = Month(DateDebut) + 4 'pour gérer le prorata de la première année d'amortissement If ActiveCell.Offset(i, 0) = 1 Then ActiveCell.Offset(i, 1) = annee ActiveCell.Offset(i, 2) = DateDebut & " au 31/12/" & annee ActiveCell.Offset(i, 3) = PrixAcquisitionHT ActiveCell.Offset(i, 4) = PrixAcquisitionHT * Taux * (30 + 1 _ - Day(DateDebut) + 30 * (12 - Month(DateDebut))) / 360 'annuité de la prémière année complète ActiveCell.Offset(i, j) = PrixAcquisitionHT * Taux * (((30 + 1 _ - Day(DateDebut)) / 30) * 1 / 12) If j < 16 Then For k = j + 1 To 16 ActiveCell.Offset(i, k) = PrixAcquisitionHT * Taux * (1 / 12) Next k End If
Else
'pour gérer le prorata de la dernière année d'amortissement If ActiveCell.Offset(i, 0) = Duree + 1 Then ActiveCell.Offset(i, 1) = annee + i - 1 ActiveCell.Offset(i, 2) = "01/01/" & annee + i - 1 & " au " & Day(DateDebut) & "/" & Month(DateDebut) & "/" & annee + i - 1 ActiveCell.Offset(i, 3) = ActiveCell.Offset(i - 1, 3).Value - ActiveCell.Offset(i - 1, 4).Value ActiveCell.Offset(i, 4) = ActiveCell.Offset(i, 3) ActiveCell.Offset(i, j) = PrixAcquisitionHT * Taux * (((30 + 1 _ - Day(DateDebut)) / 30) * 1 / 12) For k = 5 To j - 1 ActiveCell.Offset(i, k) = PrixAcquisitionHT * Taux * (1 / 12) Next k
testé sur ce fichier : http://cjoint.com/?lcu5E3vqRm -- Avec plaisir http://dj.joss.free.fr/trombine.htm http://jacxl.free.fr/mpfe/trombino.html Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel a écrit dans le message de news:
le fichier merci philippe
http://cjoint.com/?lcumcJgthM
Re,
Le code pourrait donc de venir, suite à 1ère modification :
Sub AmortLineaire()
'Modifié le 02/11/2008 par MPFE
'********************************************************************************
'_________Ecrase les données de la zone dans laquelle je vais
écrire_____________
'********************************************************************************
Dim NomImmo As String
Dim DateDebut As Date
Dim Duree As Integer
Dim Taux As Double
Dim PrixAcquisitionHT As Double
Dim annee As Integer
Dim i As Integer 'compteur permettant d'identifier la premiere et derniere
ligne
'********************************************************************************
'____________ La valeur des variables se trouvent dans une feuille
______________
'********************************************************************************
'*******************************************************************************
'_______________________ En tête du tableau à créer
____________________________
'*******************************************************************************
Range("A10").Value = "Rang"
Range("B10").Value = "Année"
Range("C10").Value = "Periode"
Range("D10").Value = "VNC Début Exercice"
Range("E10").Value = "Amort linéaire"
Range("F10").Value = "JANV" 'amortissement de janvier
Range("G10").Value = "FEV" 'amortissement de fevrier
Range("H10").Value = "MARS" 'amortissement de mars
Range("I10").Value = "AVRIL" 'amortissement d' avril
Range("J10").Value = "MAI" 'amortissement de mai
Range("K10").Value = "JUIN" 'amortissement de juin
Range("L10").Value = "JUILL" 'amortissement de juillet
Range("M10").Value = "AOUT" 'amortissemet de aout
Range("N10").Value = "SEPT" 'amortissement de septembre
Range("O10").Value = "OCT" 'amortissement de octobre
Range("P10").Value = "NOV" 'amortissement de novembre
Range("Q10").Value = "DEC" 'amortissement de décembre
Range("A10").Select
For i = 1 To Duree + 1
'ActiveCell.Offset(i).Interior.ColorIndex = 8
ActiveCell.Offset(i, 0) = i 'on définit le nombre de rang soit le nombre de
ligne utilisé
j = Month(DateDebut) + 4
'pour gérer le prorata de la première année d'amortissement
If ActiveCell.Offset(i, 0) = 1 Then
ActiveCell.Offset(i, 1) = annee
ActiveCell.Offset(i, 2) = DateDebut & " au 31/12/" & annee
ActiveCell.Offset(i, 3) = PrixAcquisitionHT
ActiveCell.Offset(i, 4) = PrixAcquisitionHT * Taux * (30 + 1 _
- Day(DateDebut) + 30 * (12 - Month(DateDebut))) / 360 'annuité de
la prémière année complète
ActiveCell.Offset(i, j) = PrixAcquisitionHT * Taux * (((30 + 1 _
- Day(DateDebut)) / 30) * 1 / 12)
If j < 16 Then
For k = j + 1 To 16
ActiveCell.Offset(i, k) = PrixAcquisitionHT * Taux * (1 /
12)
Next k
End If
Else
'pour gérer le prorata de la dernière année d'amortissement
If ActiveCell.Offset(i, 0) = Duree + 1 Then
ActiveCell.Offset(i, 1) = annee + i - 1
ActiveCell.Offset(i, 2) = "01/01/" & annee + i - 1 & " au " &
Day(DateDebut) & "/" & Month(DateDebut) & "/" & annee + i - 1
ActiveCell.Offset(i, 3) = ActiveCell.Offset(i - 1, 3).Value -
ActiveCell.Offset(i - 1, 4).Value
ActiveCell.Offset(i, 4) = ActiveCell.Offset(i, 3)
ActiveCell.Offset(i, j) = PrixAcquisitionHT * Taux * (((30 + 1 _
- Day(DateDebut)) / 30) * 1 / 12)
For k = 5 To j - 1
ActiveCell.Offset(i, k) = PrixAcquisitionHT * Taux * (1 / 12)
Next k
testé sur ce fichier :
http://cjoint.com/?lcu5E3vqRm
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
<dracbi@hotmail.fr> a écrit dans le message de
news:d1bac3b5-228e-4236-a1e1-ee3dccc16996@z6g2000pre.googlegroups.com...
Re, Le code pourrait donc de venir, suite à 1ère modification :
Sub AmortLineaire() 'Modifié le 02/11/2008 par MPFE '******************************************************************************** '_________Ecrase les données de la zone dans laquelle je vais écrire_____________ '********************************************************************************
Dim NomImmo As String Dim DateDebut As Date Dim Duree As Integer Dim Taux As Double Dim PrixAcquisitionHT As Double Dim annee As Integer Dim i As Integer 'compteur permettant d'identifier la premiere et derniere ligne
'******************************************************************************** '____________ La valeur des variables se trouvent dans une feuille ______________ '********************************************************************************
'******************************************************************************* '_______________________ En tête du tableau à créer ____________________________ '*******************************************************************************
Range("A10").Value = "Rang" Range("B10").Value = "Année" Range("C10").Value = "Periode" Range("D10").Value = "VNC Début Exercice" Range("E10").Value = "Amort linéaire" Range("F10").Value = "JANV" 'amortissement de janvier Range("G10").Value = "FEV" 'amortissement de fevrier Range("H10").Value = "MARS" 'amortissement de mars Range("I10").Value = "AVRIL" 'amortissement d' avril Range("J10").Value = "MAI" 'amortissement de mai Range("K10").Value = "JUIN" 'amortissement de juin Range("L10").Value = "JUILL" 'amortissement de juillet Range("M10").Value = "AOUT" 'amortissemet de aout Range("N10").Value = "SEPT" 'amortissement de septembre Range("O10").Value = "OCT" 'amortissement de octobre Range("P10").Value = "NOV" 'amortissement de novembre Range("Q10").Value = "DEC" 'amortissement de décembre
Range("A10").Select For i = 1 To Duree + 1 'ActiveCell.Offset(i).Interior.ColorIndex = 8 ActiveCell.Offset(i, 0) = i 'on définit le nombre de rang soit le nombre de ligne utilisé j = Month(DateDebut) + 4 'pour gérer le prorata de la première année d'amortissement If ActiveCell.Offset(i, 0) = 1 Then ActiveCell.Offset(i, 1) = annee ActiveCell.Offset(i, 2) = DateDebut & " au 31/12/" & annee ActiveCell.Offset(i, 3) = PrixAcquisitionHT ActiveCell.Offset(i, 4) = PrixAcquisitionHT * Taux * (30 + 1 _ - Day(DateDebut) + 30 * (12 - Month(DateDebut))) / 360 'annuité de la prémière année complète ActiveCell.Offset(i, j) = PrixAcquisitionHT * Taux * (((30 + 1 _ - Day(DateDebut)) / 30) * 1 / 12) If j < 16 Then For k = j + 1 To 16 ActiveCell.Offset(i, k) = PrixAcquisitionHT * Taux * (1 / 12) Next k End If
Else
'pour gérer le prorata de la dernière année d'amortissement If ActiveCell.Offset(i, 0) = Duree + 1 Then ActiveCell.Offset(i, 1) = annee + i - 1 ActiveCell.Offset(i, 2) = "01/01/" & annee + i - 1 & " au " & Day(DateDebut) & "/" & Month(DateDebut) & "/" & annee + i - 1 ActiveCell.Offset(i, 3) = ActiveCell.Offset(i - 1, 3).Value - ActiveCell.Offset(i - 1, 4).Value ActiveCell.Offset(i, 4) = ActiveCell.Offset(i, 3) ActiveCell.Offset(i, j) = PrixAcquisitionHT * Taux * (((30 + 1 _ - Day(DateDebut)) / 30) * 1 / 12) For k = 5 To j - 1 ActiveCell.Offset(i, k) = PrixAcquisitionHT * Taux * (1 / 12) Next k
testé sur ce fichier : http://cjoint.com/?lcu5E3vqRm -- Avec plaisir http://dj.joss.free.fr/trombine.htm http://jacxl.free.fr/mpfe/trombino.html Philippe.R Pour se connecter au forum : http://www.excelabo.net/mpfe/connexion.php News://news.microsoft.com/microsoft.public.fr.excel a écrit dans le message de news:
le fichier merci philippe
http://cjoint.com/?lcumcJgthM
dracbi
Impeccable un grand merci je vais tacher de comprendre le code maintenant :)
Impeccable un grand merci je vais tacher de comprendre le code
maintenant :)