Insertion d'une ligne de sous-total en VBA

guillaume30c Messages postés 5 Date d'inscription samedi 10 décembre 2011 Statut Membre Dernière intervention 12 décembre 2011 - 11 déc. 2011 à 16:29
guillaume30c Messages postés 5 Date d'inscription samedi 10 décembre 2011 Statut Membre Dernière intervention 12 décembre 2011 - 12 déc. 2011 à 12:02
Bonjour,

J'utilise une macro afin de calculer un tableau d'amortissement et je n'arrive pas à écrire une macro afin d'insérer une ligne de sous total après chaque changement d'année.
Le problème étant que l'insertion de cette ligne doit prendre en considération le mois. Je m'explique. La toute première ligne de sous total ne s'insère pas obligatoirement toujours au même endroit, tout dépend du nombre de mois qui reste avant la fin de l'année.

Merci bcp pour vos réponses!

Guillaume

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
11 déc. 2011 à 16:49
Bonjour,

démarre du bas vers le haut, dans une boucle For ... to ... step -1
insère une ligne à chaque changement de mois, avec ta formule de sous-total
Commence et viens nous montrer comment tu t'y es pris, si encore difficultés


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
guillaume30c Messages postés 5 Date d'inscription samedi 10 décembre 2011 Statut Membre Dernière intervention 12 décembre 2011
11 déc. 2011 à 19:47
Merci pour ta réponse!
Je n'arrive toujours pas à y arriver!! Je commence à désespérer ....
Je t'envoie mon fichier:


Merci
0
guillaume30c Messages postés 5 Date d'inscription samedi 10 décembre 2011 Statut Membre Dernière intervention 12 décembre 2011
11 déc. 2011 à 19:47
www.megaupload.com/?d=EEQJAZ3O
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
11 déc. 2011 à 19:51
Non !
Montre ton code ici (et ce d'autant que cette partie du code ne représente que quelques lignes et ne nécessite absolument pas la transmission de out un fichier à télécharger et ouvrir) !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

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

Posez votre question
guillaume30c Messages postés 5 Date d'inscription samedi 10 décembre 2011 Statut Membre Dernière intervention 12 décembre 2011
11 déc. 2011 à 20:32
Autant pour moi ! Je suis tout nouveau !!

Voici le code:
Sub pret()
Dim Mensualite As Currency, Emprunt As Currency, DateD As Date, Ws As Worksheet

Set Ws = [Feuil1]
ActiveSheet.Name = "Simulation_Emprunt"
With Ws

'On réinitialise le tableau
i = 10

Do While Cells(i, 1) <> ""

Cells(i, 1).EntireRow.Clear
i = i + 1

Loop

'On charge les variables
Emprunt = .Range("B3")
Mensualite = .Range("E3")
Taux_annuel = .Range("B5")
DateP = .Range("B6")
i = 10

'On initialise le tableau
.Cells(i, 1) = DateAdd("m", 1, Range("B6"))
.Cells(i, 2) = Emprunt
.Cells(i, 3) = Mensualite
.Cells(i, 4) = Emprunt * (Taux_annuel / 100) / 12
.Cells(i, 5) = Mensualite - .Cells(i, 4)
.Cells(i, 6) = .Cells(i, 2) - .Cells(i, 5)

'on commence la boucle
Do While .Cells(i, 6) > 0.1
i = i + 1
.Cells(i, 1) = DateAdd("m", 1, .Cells(i - 1, 1))
.Cells(i, 2) = .Cells(i - 1, 6)
.Cells(i, 3) = Mensualite
.Cells(i, 4) = .Cells(i, 2) * (Taux_annuel / 100) / 12
.Cells(i, 5) = Mensualite - .Cells(i, 4)
.Cells(i, 6) = .Cells(i, 2) - .Cells(i, 5)

Loop

End With

End Sub



Merci !!
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 234
11 déc. 2011 à 20:42
Rien de cela ne me parait être du VB.Net (la présente section)
Tu développes donc sous quoi ? ==>> VBA/Excel !
Nous te serions reconnaissants de bien vouloir apporter dorénavant le plus grand soin au choix de la section dans laquelle tu ouvres une discussion. C'est IMPORTANT
Nous te serions également reconnaissants de bien vouloir, lorsque tu montres un code, le mettre sous forme indentée et entre valises codes
Le code que tu montres ne correpond pas du tout à ce que je t'ai exposé, à savoir une boucle for ... to ... step - 1 pour séparer tes groupes d'années et y insérer une ligne pour tes sous-totaux !.
A moins que quelque chose ne m'ait échappé (et dans ce cas : commente ton code par des commentaires sur ce qu'est censée faire chaque ligne, selon toi).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
guillaume30c Messages postés 5 Date d'inscription samedi 10 décembre 2011 Statut Membre Dernière intervention 12 décembre 2011
12 déc. 2011 à 12:02
Bonjour,

En effet c'est du VBA !!! Seulement avant de taper mon message sur le forum aucun choix de "thème" m'indiquer du VBA, d'ou le thème "Divers/Débutants". Je sais pas si je me suis fait comprendre mais j'en suis désolé!!

Le code ci-dessous fait appel à des variables comme le montant de l'emprunt, la date, la mensualité... déjà calculer dans des cellules. Ce code permet simplement l'insertion de ligne du tableau d'amortissement avec ces variables. Bref. Je réitère ma question:

Comment insérer une ligne de sous total à la fin de chaque année (Total de l'année 2011: ....) sachant que l'insertion de la toute première ligne dépend du nombre de mois qu'il reste avant la fin de l'année, donc ca change a chaque modification de la date de souscription du prêt !

Ex: Date de souscription: 02/05/2011 il reste 7 mois avant la fin de l'année etc...

Merci pour vos réponses et encore désolé.

Sub pret()
Dim Mensualite As Currency, Emprunt As Currency, DateD As Date, Ws As Worksheet

Set Ws = [Feuil1]
ActiveSheet.Name = "Simulation_Emprunt"
With Ws

'On réinitialise le tableau
i = 10

Do While Cells(i, 1) <> ""

Cells(i, 1).EntireRow.Clear
i = i + 1

Loop

'On charge les variables
Emprunt = .Range("B3")
Mensualite = .Range("E3")
Taux_annuel = .Range("B5")
DateP = .Range("B6")
i = 10

'On initialise le tableau
.Cells(i, 1) = DateAdd("m", 1, Range("B6"))
.Cells(i, 2) = Emprunt
.Cells(i, 3) = Mensualite
.Cells(i, 4) = Emprunt * (Taux_annuel / 100) / 12
.Cells(i, 5) = Mensualite - .Cells(i, 4)
.Cells(i, 6) = .Cells(i, 2) - .Cells(i, 5)

'on commence la boucle
Do While .Cells(i, 6) > 0.1
i = i + 1
.Cells(i, 1) = DateAdd("m", 1, .Cells(i - 1, 1))
.Cells(i, 2) = .Cells(i - 1, 6)
.Cells(i, 3) = Mensualite
.Cells(i, 4) = .Cells(i, 2) * (Taux_annuel / 100) / 12
.Cells(i, 5) = Mensualite - .Cells(i, 4)
.Cells(i, 6) = .Cells(i, 2) - .Cells(i, 5)

Loop

End With

End Sub
0