Valeur selon date

Bonjour

Je cherche une vba pour que si la date du jour est comprise entre le 25 de chaque mois, alors la valeur de cellule B3 soit copiée dans le cellule correspondante au mois en en cours. J'ai la version formule mais la valeur ne reste pas une fois le mois passé.

Argent de poche mensuel2 479,00 €
Alimentation mensuelle2 767,92 €
Total5 246,92 €
Cout mensuel
janvier
février
mars
avril
mai
juin
juillet
août
septembre
octobre
novembre
décembre
Coût annuel0,00 €

Bonjour Theyoshi,

Alors, peut-être qu'il faut une formule qui dit que dès que la date du jour est supérieure au 25 du mois en cours, la valeur de B3 est reprise ?

Tu en as de la chance, ton alimentation mensuelle vient en augmentation de ton argent de poche ! Quand je fais mes courses, c'est l'inverse malheureusement...

A plus,

C'est sur que gagner autant fait plaisir...

Mais comment faire une formule qui garderait la valeur ?

Alors peut-être que j'ai rien compris mais pour moi, rien ne sert de borner aujourd'hui entre le 25 du mois m et le 25 du mois m+1...

Il suffit de dire :

=SI(aujourdhui()>date(annee;moisencours;25);B3;"")

Tout dépend comment tu testeras sur la date...

Je veux que que chaque case de mois enregistre les dépenses faite entre le 25 du mois précédent et le 25 du mois en cours.

As-tu essayé la formule ? Si tu joignais un fichier, ça pourrait être plus simple...

J'ai essayé cela, sans condition de 25 du mois :

Private Sub Workbook_SheetActivate()

Dim i As Integer

    For i = 7 To 17

    If Month(Date) = Month(Range("G" & i)) Then
        Range("H" & i) = Range("H4").Value
    Else

    End If

End Sub

Et rien du tout...

Bonjour,

Il y a plusieurs raisons possibles :
- les valeurs en G7-17 (créer une petite msgbox pour voir si la condition est remplie)
- la valeur en H4
- le fait de ne jamais activer la feuille (car je ne sais pas si la page active à la fermeture s'active ensuite à l'ouverture). (créer une seconde feuille si ce n'est pas déjà le cas).

Mais tout ceci me fait penser à une formule :

=SI(MOIS(AUJOURDHUI())>=MOIS(G7);$H$4;"")

'OU (CAR L'ANNEE SUIVANTE, ÇA COINCE)

=SI(AUJOURDHUI())>=G7;$H$4;"")

'ou encore

=SI(AUJOURDHUI())>=fin.mois(G7;-1)+1;$H$4;"")

Normalement, ça devrait marcher...

Merci de ta proposition mais ta formule est comme la mienne, elle ne garde pas des données et chaque mois efface la précédente ;

=SI(ET(MOIS(G7)=MOIS(AUJOURDHUI());(FIN.MOIS(G7;0)-AUJOURDHUI())>=5);H$3;"")

J'ai trouvé :

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Integer

If Target.Column = 8 Then

    Application.EnableEvents = False

    For i = 7 To 18

    If Month(Range("G" & i)) = Month(Now()) Then
        Range("H" & i).Value = Range("H4").Value

    ElseIf Month(Range("G" & i)) > Month(Now()) Then
        Range("H" & i).Value = "En attente"

    Else

    End If

    Next

End If

    Application.EnableEvents = True

End Sub
Rechercher des sujets similaires à "valeur date"