VB Excel addition

Fermé
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 - 20 janv. 2010 à 09:03
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 - 25 janv. 2010 à 13:54
Bonjour,
Après des dizaines de posts, aucune réponse... j'espère trouver de l'aide sur un problème qui persiste je vous explique le problème :

J'ai tout simplement besoin d'additionner un nombre de mois (compris entre 12 et 18mois) à une date donnée, sauf que le petit problème dans tout sa, j'ai bien utilisé les fonction dateadd en vain car effectivement si j'ajoute 12mois à cette date 20/01/2010 sa me donnera le 20/01/2011!

En gros pendant l'addition il faudrait que sa prenne en compte les nombres de jours dans les mois si je donne janvier en date, il doit prendre en compte que janvier à 31jours, février 28etc...

Voila j'espère avoir était le plus précis dans ma demande, merci de vos réponses !!!
A voir également:

9 réponses

voila pour la formule :

=SI(N2="An";DATE(ANNEE(E2)+O2;MOIS(E2);JOUR(E2));DATE(ANNEE(E2);MOIS(E2)+O2;JOUR(E2)))

Dans N2 j'ai An si c'est une année

Par contre pour ajouter un mois tu peux juste écrire :

DATE(ANNEE(A2);MOIS(A2)+B2;JOUR(A2) où B2 = le nombre de mois à ajouter

Si tu veux le code vb enregistre une macro ;) et tu auras ton formula :)
0
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
20 janv. 2010 à 12:38
Salut merci de ta réponse!
mais enfaite j'ai besoin de sa pour une petite application vba, que je développe enfaite je dois faire un calcul sur une date donnée une sorte de compte a rebours... et ta fonction tu veut que je la mette dans le code vba? est ce qu'elle additionne bien en fonction du nombre de jours de mois.cf mon exemple
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
20 janv. 2010 à 13:26
Bonjour,
si j'ajoute 12mois à cette date 20/01/2010 sa me donnera le 20/01/2011
Et en quoi c'est faux ?
Si ce n'est pas ce que tu attends c'est que c'est autre chose que tu veux...

une sorte de compte a rebours.

Là ça serait plutôt une soustraction...

Bref, rien n'est clair dans ta demande c'est pour ça que tu n'as pas la réponse même en la posant 10 fois.
eric
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
20 janv. 2010 à 14:46
Bonjour
si j'ajoute 12mois à cette date 20/01/2010 sa me donnera le 20/01/2011
Et en quoi c'est faux ?


A l'appui de ce qu'affirme l'ami Eric (Bonjour) ci joint démonstration par formule "mois par mois" car j'ai douté devant les affirmations répétées de Yacleouf
https://www.cjoint.com/?buoSynVDOT

Excusez l'incruste mais je n'insisterai pas sur cette discussion...
0

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

Posez votre question
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
20 janv. 2010 à 15:40
oula! excusez moi oui, je m'explique très mal, il y a que le début de mon explication! désolé,
tout d'abord merci pour vos explications!
enfaite c'est sur la suite que je coince, je dois utilisé le nombre de mois que l'on me donne exemple 13 mois, divisé par 2 (donc 7,5) et additionné ce résultats à la date donné au départ... j'ai déja fais quelque chose comme sa :

' Déclare les variables.
Dim dat1 As Date    
Dim IntervalType As String
Dim Num As Integer
Dim Msg1
IntervalType = "m"  
dat1 = ActiveWorkbook.ActiveSheet.Range("E10").Value
If dure.Value < 12 < 18 Then
Num = ActiveWorkbook.ActiveSheet.Range("E12") / 2
End If
Msg1 = DateAdd(IntervalType, Num, dat1)
ActiveWorkbook.ActiveSheet.Range("H14").Value = Msg1


encore désolé je sais pas pourquoi j'ai raconté n'importe quoi ^^
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 216
20 janv. 2010 à 16:11
Ca serait plus clair si tu donnais 3-4 exemples :
si j'ai ça, ça et ça et je veux obtenir ça parce que ceci...
Et le mieux c'est sur un classeur que tu déposes sur cijoint.fr (coller le lien fourni ici)
0
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
20 janv. 2010 à 16:33
Et bien merci eriiic je pense qu'une fois que tu verra la tete du programme tu comprendras sa ne cherche pas bien loin, sauf que j'ai du mal et que je n'aime pas le vba ....
https://www.cjoint.com/?buqE21ayRz
si tu as besoin de plus d'explication n'hesite pas a m'en redemander j'ai normalement bien commenté mon code.
0
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
25 janv. 2010 à 09:29
Je refais up le post !
0
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
25 janv. 2010 à 13:54
Bon j'ai re-essayer une fois encore d'effectuer ce calcul, mais il ne veut rien savoir!
@michel_m j'ai essayer d'utiliser ton fichier excel qui est plustot pas mal! sauf que tu as du restreindre la plage comme je l'avais dit un peut avant (en gros devoir donner un nombre de mois entre 12 et 18 mois) sauf que etant donnée que ce nombre de mois doit être divisé par deux excel me rend une erreur du type #REF...
sinon si par exemple j'effectue la divison hors de la formule et que j'additionne mon nombre de mois à une date il croit que les mois sont des jours....
Donc la je suis coincé...
0