VBA Excel problème de répartissions
Fermé
turkiarra
Messages postés
7
Date d'inscription
lundi 19 janvier 2009
Statut
Membre
Dernière intervention
9 février 2009
-
9 févr. 2009 à 11:21
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 févr. 2009 à 12:26
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 févr. 2009 à 12:26
A voir également:
- VBA Excel problème de répartissions
- Liste déroulante excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
9 févr. 2009 à 11:30
9 févr. 2009 à 11:30
Bonjour,
Je ne comprebd pas très bien,
Tu aurais un montant .. ex: 1000 à répartir sur un nombre de mois ?
Mais le nombre de mois est tributaire des jours ex : du 31/1 au 1/2 il y a deux mois ? mais seulement 2 jours ?
Tu dis...
A+
Je ne comprebd pas très bien,
Tu aurais un montant .. ex: 1000 à répartir sur un nombre de mois ?
Mais le nombre de mois est tributaire des jours ex : du 31/1 au 1/2 il y a deux mois ? mais seulement 2 jours ?
Tu dis...
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
9 févr. 2009 à 12:26
9 févr. 2009 à 12:26
Une macro qui calcule la répartition en fonction des dates et des jours, si tu ne veux pas répartir en jour tu met DatDeb avec par exemple 1/1/2009 et dans datFin 31/7/2009
Mais supporte la répartition pondérée sur des dates complète comme 10/1/2009 au 21/7/2009
Tu dis...
A+
PS: je n'ai pas pris en compte un éventuel changement d'année.
Si ce devait être le cas il faudra adapter.
Mais supporte la répartition pondérée sur des dates complète comme 10/1/2009 au 21/7/2009
Sub RépartirMontant() Dim Ddep As Long, Dr As Date Dim DatDep As Date, DatFin As Date Dim Montant As Single, Repartit As Single Dim Buf As Byte, Lig As Long 'exemple: Montant = 12000 DatDep = "10/1/2009" DatFin = "21/7/2009" 'calcul le nombre de jour en tout = 192 dans l'exemple Ddep = DateValue(DatFin) - DateValue(DatDep) + 1 Repartit = Montant / Ddep 'répartit le montant sur le nombre de jours Lig = 3 'Montant pour janvier Buf = calculJourMois(DatDep) - Day(DatDep) + 1 With Sheets("feuil1") .Cells(Lig, 3) = Buf * Repartit For i = Month(DatDep) + 1 To Month(DatFin) - 1 Lig = Lig + 1 Dr = DateSerial(Year(DatDep), i, 1) Buf = calculJourMois(Dr) .Cells(Lig, 3) = Buf * Repartit Next i 'Montant pour juillet Buf = calculJourMois(DatFin) - Day(DatFin) .Cells(Lig + 1, 3) = Day(DatFin) * Repartit End With End Sub Function calculJourMois(D As Date) As Byte Dim D1 As Long, D2 As Long Dim Mois As Integer D1 = DateSerial(Year(D), Month(D), 1) If Month(D) < 12 Then calculJourMois = DateSerial(Year(D), Month(D) + 1, 1) - D1 Else calculJourMois = DateSerial(Year(D) + 1, 1, 1) - D1 End If End Function
Tu dis...
A+
PS: je n'ai pas pris en compte un éventuel changement d'année.
Si ce devait être le cas il faudra adapter.
9 févr. 2009 à 11:49
Par exemple si j'ai un montant de 1000 que je veux répartir sur 4 mois a partir du mois de février 2009, il faudrait que j'ai la valeur 250 dans la colonne Février 2009, puis dans la colonne Mars 2009, dans la colonne Avril 2009 et dans la colonne Mai 2009. Avec la programmation que j'ai effectué j'arrive juste a rentré la valeur 250 dans la première colonne, c'est à dire ici la colonne Février 2009, et je voudrai une fonction qui me permette de répartir ensuite cette valeur suivant le nombre de mois saisie.
Je sais pas si j'ai été plus clair.
Merci de t'être penché sur mon probleme lermite 222!
En esperant que tu trouve la solution...