Incrematation de date par mois

Kenseth

XLDnaute Nouveau
Bonjour à tous,

Voila maintenant quelques heures que j'ai ce problème sans y trouvé la solution. Alors je m'explique.

Je doit faire l'incrémentation d'une date par mois et que celle-ci s'incrémente sur un nombre de cellule variable. Donc si en B2 j'ai 50, mon incrémentation doit se faire sur 50 lignes pour 50 mois si ces 12 alors celle-ci doit se faire sur 12 ligne pour 12 mois. J'aimerais le plus possible que ceci soit fait en VBA.

J'espère avoir été clair.
Si au besoin vous avez besoin de mon fichier, j'essaierai de vous en faire une copie vierge car je travail sur des données confidentiel.

Merci à vous tous!
 

Papou-net

XLDnaute Barbatruc
Re : Incrematation de date par mois

Bonjour à tous,

Voila maintenant quelques heures que j'ai ce problème sans y trouvé la solution. Alors je m'explique.

Je doit faire l'incrémentation d'une date par mois et que celle-ci s'incrémente sur un nombre de cellule variable. Donc si en B2 j'ai 50, mon incrémentation doit se faire sur 50 lignes pour 50 mois si ces 12 alors celle-ci doit se faire sur 12 ligne pour 12 mois. J'aimerais le plus possible que ceci soit fait en VBA.

J'espère avoir été clair.
Si au besoin vous avez besoin de mon fichier, j'essaierai de vous en faire une copie vierge car je travail sur des données confidentiel.

Merci à vous tous!

Bonsoir Kenseth, et bienvenue à toi,

Voici un exemple de macro sur le fichier ci-joint.

Espérant avoir répondu.

Cordialement.

Oups, désolé : cette solution ne fonctionne que pour les mois d'une même année. Je regarderai une autre solution plus tard, si personne n'a résolu le problème.
 

Pièces jointes

  • Kenseth.xls
    24.5 KB · Affichages: 53
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Incrematation de date par mois

Bonsoir le fil :),
Papou-net, j'ai l'impression que tu as été chercher bien loin ;).
Code:
Private Sub CommandButton1_Click()
dte = CDate(Range("A1"))
For n = 2 To [B1]
  Cells(n, 1) = DateAdd("m", 1, Cells(n - 1, 1))
Next
End Sub
devrait fonctionner.
Bonne soirée :cool:
 

Papou-net

XLDnaute Barbatruc
Re : Incrematation de date par mois

Bonsoir le fil :),
Papou-net, j'ai l'impression que tu as été chercher bien loin ;).
Code:
Private Sub CommandButton1_Click()
dte = CDate(Range("A1"))
For n = 2 To [B1]
  Cells(n, 1) = DateAdd("m", 1, Cells(n - 1, 1))
Next
End Sub
devrait fonctionner.
Bonne soirée :cool:

Bonjour JNP,

Effectivement, tu as raison : l'heure tardive n'y était sûrement pas étrangère, quand bien même je n'aurais pas pensé à cette simple instruction "DateAdd".

Merci à toi et bonne journée.

Cordialement.
 

Kenseth

XLDnaute Nouveau
Re : Incrematation de date par mois

Merci beaucoup pour vous réponse mais j'ai de la difficulté a l'adapter à ma situation. Je m'explique.

L'incrémentation ce fait très bien, mais la seule chose qui me reste a regler est que pour la ligne :

for n = 2 to [B1]

est-il possible de changer le 2 par la cellule active? J'ai fait un test avec n = ActiveCell to [B1] mais bien sur sans succes. Car ceci va se trouver à être une base de donnée donc, il y aura plusieurs transaction qui va se faire entre mon formulaire d'entré et la base de donnée avec des date différente.

Merci encore de vos réponse!
 

JNP

XLDnaute Barbatruc
Re : Incrematation de date par mois

Re :),
L'incrémentation ce fait très bien, mais la seule chose qui me reste a regler est que pour la ligne :
for n = 2 to [B1]
A mon avis, si c'est juste ça qui t'embête, ce sera merveilleux, mais j'ai quelque doutes :p...
Pour l'instant, elle ne fonctionne qu'en colonne A avec le nombre de mensualités en colonne B, avec la sélection, il va falloir être sûr d'avoir le nombre de mensualité à droite, et ça ne fonctionne que sur une feuille, etc. :D !
Une possibilité, c'est de faire une macro indépendante dans un module
Code:
Sub Incrémentation()
Dim MaDate As Date, I As Integer, Mensualités As Integer, PremLigne As Integer, Colonne As Integer
If Selection.Count <> 1 Then Exit Sub
MaDate = CDate(Selection)
PremLigne = Selection.Row
Colonne = Selection.Column
Mensualités = InputBox("Nombre de mois ?", "Mensualités")
For I = PremLigne + 1 To Mensualités + PremLigne - 1
  Cells(I, Colonne) = DateAdd("m", 1, Cells(I - 1, Colonne))
Next
Cells(PremLigne, Colonne).Select
End Sub
Puis de déclarer un raccourci à l'ouverture du classeur (sans oublier de le supprimer à la fermeture) avec ce code dans ThisWorkbook
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "^+m"
End Sub
Private Sub Workbook_Open()
Application.OnKey "^+m", "Incrémentation"
End Sub
Et là, il suffit de sélectionner une date, faire un Ctrl+Maj+m, de renseigner le nombre de mensualités demandées... C'est magique, non :eek: ?
Bon WE :cool:
Je te met l'exemple en pièce jointe.
 

Pièces jointes

  • Kenseth(1).xls
    44 KB · Affichages: 37

Kenseth

XLDnaute Nouveau
Re : Incrematation de date par mois

Merci infiniment, tout fonctionne bien. J'ai seulement fait une ou deux modification pour que le toute se produise automatiquement sans que l'usager n'aie à entrer quoi que ce soit ou qu'il n'aie pas à faire les touches clavier pour la démarrer.

Merci à tout ceux qui ont bien voulu m'aider
:D
 

Staple1600

XLDnaute Barbatruc
Re : Incrematation de date par mois

Bonsoir à tous


Un autre possibilité (qui évite la boucle)


Code:
Sub IncrémenterMOIS()
Dim nm As Long
nm = Range("B1").Value
Range("A1").AutoFill Destination:=Range("A1").Resize(nm), Type:=xlFillMonths
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Incrematation de date par mois

Re


Si on le peut

Il suffit d'adapter le code en conséquence.

Ecriture non orthodoxe (pour le fun )
Code:
Sub IncrémenterMOIS_2()
ActiveCell.AutoFill Destination:=ActiveCell.Resize(CLng(InputBox("Nombre mois désiré?", "INCREMENTATION DES MOIS", 12))), Type:=xlFillMonths
End Sub

Évidement avec ce code , mieux vaut que la cellule active contienne une date.
 
Dernière édition:

Discussions similaires

Réponses
9
Affichages
409
Réponses
14
Affichages
734

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote