• Initiateur de la discussion Initiateur de la discussion landoltp
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

landoltp

Guest
Bonjour,
je suis nouveau sur le forum et je ne sais pas si on peut aussi y poser des questions relatives à VBA sur Excel, car j'ai un problème relatif à un code que je dois faire dans le cadre de mon travail de diplôme... merci si vous pouvez m'éclairer
 
Re : Vba?

merci pour vos réponses rapides.
donc mon problème c'est que j'ai un code qui me calcul un échéancier puis il me retransmet les valeurs dans des cellules en fonction des dates de paiement. Mon souci c'est que ca marche pour une personne, mais il faudrait que ca me fasse une boucle sur tous les clients et ca je ne vois absolument pas comment m'y prendre.
j'ai mis une copie du fichier sans les macros (trop gros). Donc idéalement il faudrait que ca me fasse l'échéancier (chaque fois dans le même) pour chaque client et que ca reprenne toutes les valeurs en fonction des dates, mais comme dit précédemment, là je sèche. encore merci si quelqu'un a une idée

pour l'instant voici le code que j'ai fait (la 2ème partie est enregistrée en module, je voyais pas comment faire autrement):

Private Sub CommandButton1_Click()

Const fdg As Double = 0.1
Dim montant As Double
Dim tau As Double
Dim tau2 As Double
Dim dur As Integer
Dim dep As Date
Dim differ As Single
Dim maf As Worksheet
Dim index As Long
Dim rbt As Currency
Dim jour As Date

Set maf = Sheets("feuil2")
maf.Range("A18:F419").ClearContents
montant = maf.Range("e2")
tau = maf.Range("f2") * 12 * 100
tau2 = maf.Range("f2")
dur = maf.Range("i2")
differ = maf.Range("k2")
rbt = (montant * (-tau2) * (1 + tau2) ^ dur) / (1 - (1 + tau2) ^ dur)
dep = maf.Range("d2")
For index = 1 To differ + dur
maf.Range("a" & index + 17) = index
jour = DateSerial(Year(dep), Month(dep) + index, Day(dep))
If Weekday(jour, 2) = 6 Then jour = jour - 1
If Weekday(jour, 2) = 7 Then jour = jour + 1

maf.Range("b" & index + 17) = Format(jour, "dddd")
maf.Range("c" & index + 17) = jour
If index <= differ Then
maf.Range("d" & index + 17) = montant * tau / 1200
maf.Range("e" & index + 17) = montant * fdg / (dur + differ)
maf.Range("f" & index + 17) = (montant * tau / 1200) + (montant * fdg / (dur + differ))
Else
maf.Range("d" & index + 17) = rbt
maf.Range("e" & index + 17) = montant * fdg / (dur + differ)
maf.Range("f" & index + 17) = rbt + (montant * fdg / (dur + differ))
End If
Next index

Range("C11").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Feuil2!R[7]C:R[18]C>=TODAY())*(Feuil2!R[7]C:R[18]C<TODAY()+30)*(Feuil2!R[7]C[3]:R[18]C[3]))"
Range("C12").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Feuil2!R[6]C:R[17]C>=TODAY()+30)*(Feuil2!R[6]C:R[17]C<TODAY()+90)*(Feuil2!R[6]C[3]:R[17]C[3]))"
Range("c13").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Feuil2!R[5]C:R[16]C>=TODAY()+90)*(Feuil2!R[5]C:R[16]C<TODAY()+180)*(Feuil2!R[5]C[3]:R[16]C[3]))"
Range("C14").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Feuil2!R[4]C:R[15]C>=TODAY()+180)*(Feuil2!R[4]C:R[15]C<TODAY()+360)*(Feuil2!R[4]C[3]:R[15]C[3]))"
Range("C15").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Feuil2!R[3]C:R[14]C>=TODAY()+360)*(Feuil2!R[3]C:R[14]C<TODAY()+720)*(Feuil2!R[3]C[3]:R[14]C[3]))"
Range("C16").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Feuil2!R[2]C:R[13]C>=TODAY()+720)*(Feuil2!R[2]C:R[13]C<TODAY()+1080)*(Feuil2!R[2]C[3]:R[13]C[3]))"
Range("C17").Select

End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
210
Réponses
3
Affichages
278
Réponses
1
Affichages
172
  • Question Question
Microsoft 365 couleur et ligne
Réponses
6
Affichages
293
Retour