Boucle VBA avec if condition

Résolu/Fermé
amo-51 Messages postés 94 Date d'inscription mercredi 21 septembre 2016 Statut Membre Dernière intervention 3 novembre 2019 - 22 sept. 2016 à 14:07
 amo-51 - 25 sept. 2016 à 16:28
Bonjour;
je suis une novice, de formation finance
je cherche à créer un tableau d'amortissement crédit de consommation sur VBA Excel
Aucune erreur n'est affiché par VBA
mais le résultat de la boucle que j'ai nommé sur mon programme "cellule échéance" est fausse
SVP aidez moi
Merci

Sub Tableau()
'
' Tableau Macro
'
Sheets("Feuil1").Select

Cells(11, 3).Value = Cells(9, 3).Value * Cells(10, 3).Value 'calcul Nombre échéance
'cells(13, 3) . Value = formule VPM reste à faire

'cellule mois
Dim Mois As Integer, Msgbox As String
Mois = Cells(10, 3).Value
If Cells(10, 3).Value = 12 Then
Msgbox = "Mois"
ElseIf Cells(10, 3).Value = 4 Then
Msgbox = "Trimestre"
ElseIf Cells(10, 3).Value = 6 Then
Msgbox = "Bimestre"
Else
Msgbox = "Semestre"
End If
Cells(17, 1).Value = Msgbox

'cellule mesnualité
Dim Mensualité As Integer
Mensualité = Cells(10, 3).Value
If Cells(10, 3).Value = 12 Then
Msgbox = "Mensualité"
ElseIf Cells(10, 3).Value = 4 Then
Msgbox = "Trimestrialité"
ElseIf Cells(10, 3).Value = 6 Then
Msgbox = "Bimestrialité"
Else
Msgbox = "Semestrialité"

End If
Cells(17, 9).Value = Msgbox

'calcul encours 1
Range("A18").Select
Cells(18, 2).Value = Cells(7, 3).Value 'calcul encours 1 '

' Cellule echéances
Dim x As Long, Resultat As Integer
x = Cells(11, 3).Value + 18
Numéroligne = 19
For r = 19 To x
Cells(18, 1).Value = 1
If Cells(r, 1).Value = Cells(11, 3).Value + 1 Then
Resultat = 0
Else
Resultat = Cells(r, 1).Value + 1
End If
Next
Cells(r, 1).Value = Resultat
Worksheets("feuil1").Cells(x, 1).Value = ""


'cellule tableau
Dim PPmt As Double, IPmt As Double
Dim derniereLigne As Long
derniereLigne = Range("A18").End(xlDown).Row
'MsgBox derniereLigne 'affiche le nombre de ligne non vide
k = derniereLigne
Numéroligne = 18
For i = 18 To k
Cells(i, 3).Value = -Application.PPmt((Cells(8, 3).Value * (1 + Cells(12, 3).Value)) / Cells(10, 3).Value, Cells(i, 1).Value, Cells(9, 3).Value * Cells(10, 3).Value, Cells(7, 3).Value, 0, 0)
'Cells(K, 3).Value = Cells(i + 1, 4).Value.ClearContents 'effacer derniere ligne de la boucle
Cells(i, 4).Value = -Application.IPmt((Cells(8, 3).Value * (1 + Cells(12, 3).Value)) / Cells(10, 3).Value, Cells(i, 1).Value, Cells(9, 3).Value * Cells(10, 3).Value, Cells(7, 3).Value, 0, 0)
'Cells(K, 4).Value = Cells(i + 1, 4).Value.ClearContents 'effacer derniere ligne de la boucle
Cells(i, 5).Value = Cells(i, 4).Value / (1 + Cells(12, 3).Value) 'calcul interet ht
'Worksheets("Sheet1").Cells(i + 1, 5).Value.ClearContents 'effacer derniere ligne de la boucle
Cells(i, 6).Value = Cells(i, 5).Value * Cells(12, 3).Value 'calcul TVA
'Worksheets("Sheet1").Cells(i + 1, 6).Value.ClearContents 'effacer derniere ligne de la boucle
Cells(i, 7).Value = (Cells(i, 2).Value * Cells(8, 4).Value / Cells(10, 3).Value) + Cells(i, 6).Value 'calcul client
'Worksheets("Sheet1").Cells(i + 1, 7).Value.ClearContents 'effacer derniere ligne de la boucle
Cells(i, 8).Value = Cells(i, 2).Value * Cells(8, 5).Value / Cells(10, 3).Value 'calcul bonif
'Worksheets("Sheet1").Cells(i + 1, 8).Value.ClearContents 'effacer derniere ligne de la boucle
Cells(i, 9).Value = Cells(i, 3).Value + Cells(i, 5).Value + Cells(i, 6).Value 'calcul Mensualité
'Worksheets("Sheet1").Cells(i + 1, 9).Value.ClearContents 'effacer derniere ligne de la boucle
Cells(i, 10).Value = Cells(i, 2).Value - Cells(i, 3).Value 'calcul CRD
'Worksheets("Sheet1").Cells(i + 1, 10).Value.ClearContents 'effacer derniere ligne de la boucle
Cells(i + 1, 2).Value = Cells(i, 10).Value 'calcul encours 2 à n'
'Worksheets("Sheet1").Cells(i + 2, 2).Value.ClearContents 'effacer derniere ligne de la boucle
Next
Worksheets("feuil1").Cells(k, 1).Value = ClearContents



End Sub

5 réponses

Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023 68
22 sept. 2016 à 14:30
Ami Marnais, bonjour ,

Peux tu nous joindre ton fichier ?
Avec un exemple (sans VBA) qu'on puisse vérifier ce qu'on fait.

Cordialement,
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
22 sept. 2016 à 15:47
Bonjour,

Dim Msgbox As String 
est une source d'erreur : il ne faut pas employer de mot réservé au langage pour définir une variable !
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
22 sept. 2016 à 16:10
PS :
Quand tu mets du code sur le Forum il faut le baliser,
c'est très simple :


0
amo-51 Messages postés 94 Date d'inscription mercredi 21 septembre 2016 Statut Membre Dernière intervention 3 novembre 2019
22 sept. 2016 à 21:02
bon soir
merci d'avoir pris en charge rapidement mon problème

je fais comment pour joindre le fichier excel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
23 sept. 2016 à 00:07
mets un exemple de ton fichier sur https://www.cjoint.com/
et mets le lien obtenu dans ton prochain message.

Tuto : Comment utiliser C.joint.fr
0
amo-51 Messages postés 94 Date d'inscription mercredi 21 septembre 2016 Statut Membre Dernière intervention 3 novembre 2019
23 sept. 2016 à 13:00
Bonjour Patrice;

j'ai suivi vos orientations et j'ai réussi à créer un lien sur cjoint

https://www.cjoint.com/c/FIxk42h1heu

Cordialement

merci d'avoir pris en charge ma requête.
0
Bonjour Patrice
j'ai trouvé la faille
ci-dessous la maroc corrigée

http://www.cjoint.com/c/FIzoz5aNNzd

Merci d'avoir accepter de m'aider
0