Ajout de mois à une date par cumul

Bonjour à tous,

J'ai déjà récemment demandé de l'aide sur ce projet, et une aide précieuse m'a déjà été apportée. Re topo :

J'ai à ma disposition un fichier excel regroupant tous les instruments de location de l'entreprise, une feuille par type d'instrument, tout est importé d'une base de données ACCESS (actualisée régulièrement le nombre de ligne est donc amené à changer). La première feuille ne nous concerne pas ici c'est le contrat de location et il fait déjà l'objet d'une macro (qui crée aussi un tableau dans une feuille cachée, qui ne nous concerne pas non plus).

Ici mon objectif est simple, j'ai créé en test juste sur la première feuille (intitulée "VIOLON") 4 nouvelles colonnes :

  • "Nom du client" explicite ...
  • "Date début" donc le début de la location
  • "Jusqu'au" donc jusqu'à quand l'instrument est loué (et payé)
  • "Ajout mois" c'est ici que j'aimerais que tout se passe, qu'on rentre un chiffre et que ça ajoute des mois à "jusqu'au"
Donc pour faire simple : J'aimerais tout d'abord que quand une date est rentrée dans "date début" elle se copie dans "jusqu'au". Puis, quand on rentre un chiffre dans "Ajout mois" le nombre de mois soit ajouté dans "jusqu'au", que ce chiffre s'efface (afin d'être sûr qu'il soit rentré et que la macro est rentrée, quand on enregistre les paiement c'est à la chaîne et une erreur est vite arrivée). Je ne l'ai pas fait puisque l'exercice était déjà assez long à tenter par moi-même, mais j'aurais aimé une colonne de plus qui afficherait la dernière valeur rentrée dans "ajout mois" afin de vérifier si une erreur à été commise.

J'ai vraiment essayé pour le coup, j'ai l'impression que ce genre de chose à l'air plus facile que ce que j'avais demandé avant, mais je n'arrive pas à intégrer la logique de ce code. Beaucoup de choses sont plus ou moins semblables à du Java où j'ai quelques bonnes bases mais pour ce qui à trait aux cellules etc ... C'est pas ça T_T

Je vous met le document test en PJ et vous remercie par avance, je suis dispo pour toute info complémentaire

11testdate.xlsm (57.94 Ko)

Bonjour Imharil,

Dans la colonne "JUSQU'AU" ajoute la formule :

=MOIS.DECALER([@[DATE DEBUT]];[@[AJOUT MOIS]])

Merci pour cette réponse, malheureusement cette formule ne fonctionne pas, peut-être à cause de ma version d'Excel. J'ai de plus peur qu'elle ne réponde pas forcément à mon besoin, qui est de pouvoir rajouter des mois plusieurs fois dans revenir à la date de départ à chaque fois. Si la réponse est dans une simple formule ... Pourquoi je me suis embêté avec le VBA

Merci quand même.

Exact, MOIS.DECALER et EXCEL 2007 ne font pas bon ménage...

Alors, je propose cette petite fonction de substitution :

Function DecalerMois(zCellDate As Range, zCellMois As Range) As Variant
    Dim dDate As Date, lNbMois As Long

    If IsDate(zCellDate.Value) Then
        dDate = zCellDate.Value
        If IsNumeric(zCellMois.Value) Then
            lNbMois = zCellMois.Value
            DecalerMois = DateAdd("m", lNbMois, dDate)
        End If
    Else
        DecalerMois = ""
    End If
End Function

Et de saisir dans la colonne "JUSQU'AU" la formule :

DecalerMois(J2;L2)

Je joins mon EXCEL de test mais j'ai dû rompre le lien vers la base ACCESS que tu n'as pas fournie.

Oups pour le fichier joint...

22testdate-gvs.xlsm (56.11 Ko)

Je n'ai pas le temps aujourd'hui je regarde demain, merci

Bonjour,

J'ai du coup essayé, avec Ton document et le mien. Je n'ai peut-être pas bien compris où insérer le DecalerMois(J2;L2), j'ai essayé dans les cellules, en renommant la colonne mais rien ne change (dans la cellule, Excel me renvoie un #NOM?, même après modif des cellules adjacentes).

Pourrais-tu éventuellement m'expliquer comment tu identifies quelles cellules activent le codent dès modification dans la code ? Si j'arrive à comprendre ça, ça serait un grand pas en avant

Bonjour Imharil,

Si EXCEL te renvoie #NOM lorsque tu introduis la fonction dans une cellule, c'est qu'il ne trouve pas cette fonction.

L'as-tu bien introduit correctement dans un module? As-tu lancé une compilation? As-tu sauvegardé le classeur?

Merci pour ta réponse, le code marche très bien, je n'avais pas compilé le code. Mais reste un problème tout con :

Quand j'ajoute un mois j'aimerais que la date dans JUSQU'AU soit sauvegardé, et qu'en cas de changement de la valeur "ajout mois", le nombre de mois ajouté soit fait par rapport à la dernière date JUSQU'AU sauvegardée, et non pas à la date de début.

Le code pourrait néanmoins marcher, en additionnant simplement le nombre de mois au fur et à mesure dans AJOUT MOIS, je ne sais pas si ce que je demande nécessite une trop grande modification du code, si c'est le cas, ne t'embête pas ce que tu m'as fourni pourra faire l'affaire, c'est juste une question de "qualité de vie", le classeur étant destiné à de très grands débutants en informatique, j'aimerais laisser le moins de marge d'erreur possible. Je te remercie (grandement)

Imharil,

J'ai réfléchie au nouveau problème que tu soumets : je n'ai pas de trouvé de solution VBA qui ne ferait pas partir vers une "usine à gaz".

Peut-être quelqu'un d'autre du forum...

J'ai une suggestion, mais sur le plan pratique, je te laisse juge de son adéquation :

-Tu crées 2 nouvelles colonnes "Date reportée" et "Nb Mois report" et tu insères la fonction "DecalerMois" dans les cellules "Date reportée" en faisant références aux cellules "JUSQU'AU" et "Nb Mois report".

Je pense qu'on s'approche de quelque chose avec ce que tu proposes

Je te remercie pour tes précisions, merci d'avoir pris du temps sur mon problème je vais retourner bosser dessus plus en profondeur de mon côté en essayant avec ce que tu proposes, je repost si j'ai quelque chose de convaincant si ça peut en aider d'autres, en attendant, je passe en résolu.

Merci beaucoup pour ton aide et passe une bonne journée !

Imharil

Bonb=jour

Exact, MOIS.DECALER et EXCEL 2007 ne font pas bon ménage...

Depuis quand ? Cette fonction qui appartenait à l'utilitaire d'analyse sur les versions précédentes a été, comme la plupart de ces fonctions, incorporée à Excel à partir de la version 2007, donc je ne vois pas pourquoi elle ne fonctionnerait pas...

C'est peut-être la suite qui ne marche pas, je crois avoir lu que les @ dans excel 2007 ne marchaient pas.

Re

les @ indiquent une formule de tableau structuré : dans 2007 c'est effectivement un peu différent mais il suffit de sélectionner les cellules du tableau dans la formule pour que la syntaxe soit correcte...

Rechercher des sujets similaires à "ajout mois date cumul"