VBA Enchainer des périodes

Bonjour

Je voudrais en VBA, enchainer des périodes à partir d'une date de début DD = date de début 06/08/2007

un dessin vaut mieux qu'un long discourt... à voir en fin de message

PS : actuellement les colonnes H et K sont remplies par VBA donc ça commence à être lourd...

    With sH_2
       derLigne = .Range("A" & Rows.Count).End(xlUp).Row    'détermination des dates Reval
        DE = .Cells(1, 5)                                   'E1
        DAd = .Cells(2, 5)                                  'E2
        .Cells(2, 7) = "M1"                                 'G2
        .Cells(2, 8) = DateAdd("m", 6, DAd)                 'H2
        .Cells(2, 11).FormulaR1C1 = "=EOMONTH(RC[-3],0)"    'K2 Fin de mois
        .Cells(3, 7) = "M2"                                 'G3
        .Cells(3, 8) = DateAdd("m", 18, DAd)                'H3
        .Cells(3, 11).FormulaR1C1 = "=EOMONTH(RC[-3],0)"    'K3 Fin de mois

Peut-on supprimer la colonne fin de mois ou au contraire dois-je ajouter une nouvelle colonne '1er Jr du mois qui suit' et écrire

 M2 = "Du " & &.Range("H2").Value & " au " & .Range("K2").Value
M3 = "Du" & .Range("L2").Value & " au " & sH_2.Range("K3").Value
M3 = "Du" & .Range("L3").Value & " au " & sH_2.Range("K4").Value
et ainsi de suite ?

Merci d'avance pour votre aide et vos conseils (Je suis très débutante en VBA, tout conseil même en général est bon à prendre)...

poub periode

Bonjour

mouftie a écrit :

un dessin vaut mieux qu'un long discourt...

FAUX : un fichier vaut mieux qu'un long discours

Amicalement

Nad

Bonjour Nad,

La dernière fois j'ai envoyé le fichier, je n'ai pas eu de réponse jusqu'à ce que j'envoie la copie d'écran...

Le tout c'est de ce faire comprendre

Ci_joint, comme demandé un fichier

merci de ton aide

11poub-periode.xlsm (24.68 Ko)

Bonsoir,

C-joint mise à jour du fichier initial avec les dates de début et de fin pour les majorations.

Cdlt.

Bonsoir Jean-Eric,

Merci pour ta réponse ;

Il y a un pb dans le calcul des dateDif, car tu pars toujours de la date d'effet, or il faut d'abord trier le tableau par date et ensuite appliquer la formule dateDif entre chaque date à partir de DE jusqu'à Forclusion (y compris forclusion). j'ai mis en mauve le résultat des intervalles que j'attends.

il y a aussi qq ch que je ne comprends pas dans ton code

'Calcul des intervalles Feuille 'Masquée'
'   Remise à 1 du compteur
        j = 1
        derLigne = .Range("G" & Rows.Count).End(xlUp).Row - 2          'détermine la dernière ligne du tableau
        For i = 3 To derLigne Step 1                   'boucle de la ligne 3 à la dernière ligne avec un pas de 1
        .Cells(1 + j, 6) = j                                            ' Numérotation de l'index à partir de F2
        .Cells(1 + j, 9) = DateDiff("m", DE, Cells(1 + j, 8))              'I2 = DtDif entre DE et  H2
        j = j + 1                          'I3 = DtDif entre DE et H3 etc...
        Next i
    End With

quand je le reprends pour le mettre dans mon fichier la boucle s'arrête 3 lignes avant la fin du tableau ; pourquoi ne commences-tu pas par For i = 1 ?

Ensuite, l'objet de ce post c’était pour savoir s'il était possible d'insérer des formules dans une phrase ou si je dois absolument passer par "poser" mes formules avant de faire ma phrase

par ex en partant des périodes que tu as écrites avec les majorations, la phrase serait :

A21 = "du " & .range("F7").value & " au " & .range("G7") & "suite du blabla"

ou s'il est possible d'écrire quelque chose comme

A21 = "du " & formule_du_1er_jr_qui_suit_C7 & " au " & formule_du_dernier_jr_qui_suit_G7) & "suite du blabla"

je débute en VBA, je demande peut-être qq chose d'idiot...

en tout cas merci encore pour tes réponses

Re,

1/ Au sujet de la boucle, que tu ne comprenais pas, c'est normal.

En insérant la date DaD, j'ai décalé celle-ci. C'est corrigé

2/ J'ai modifié le calcul des intervalles et c'est Okay. Par contre ton calcul est érroné. La somme des mois donne 44 mois pour la période DE/Forclusion (au lieu 48 mois).

3/ Au sujet de ton blaba, tu fais comme tu veux. Tu as maintenant les éléments en ta possession pour le faire. Cependant, tu travailles avec un tableur. Privilégies les calculs avant de te formaliser avec un semblant de synthèse qui n'en sera pas une. Tu dois maintenant penser à intégrer des montants (EUR), calculer les majorations et les revalorisations. Me trompe je?

nb : évites d'écrire quoique se soit sous le tableau de données.

Cordialement

Bonjour Jean-Eric,

pardonne-moi de ne pas avoir répondu j'ai été malade (tant que c'est pas une allergie a VBA...)

Jean-Eric a écrit :

nb : évites d'écrire quoique se soit sous le tableau de données

merci beaucoup pour tes suggestions et remarques (me rappeler mes objectifs principaux... )

j'ai encore de la fièvre et j'ai beaucoup de mal à me concentrer avec toutes ces dates...

Merci vraiment, tu m'as beaucoup aidé.

Rechercher des sujets similaires à "vba enchainer periodes"