VBA fonction mention selon dates

Bonjour

Je sollicite votre aide pour écrire mon code en VBA.

Je souhaite écrire un code qui me permette d'obtenir une mention:

Date début en colonne A

Date fin en colonne B

Mention, si Date début > au 01/01/2017 et Date fin < au 01/04/2017, alors "Hors-saison" sinon "rien"

Mention, si Date début > au 01/11/2017 et Date fin < au 31/12/2017, alors "Hors-saison" sinon "rien"

Merci de votre aide, car je galère un peu depuis un bon moment.

Bonne soirée.

bonsoir,

Une idée sans utilisation VBA. Juste une formule en C2 à copier vers le bas.

Cdt

Henri

18essai-cordia5.xlsx (10.50 Ko)

Bonsoir AFEH

Merci, mais par la formule cela ne pose aucun souci, mais comme cela doit s'intégrer dans un tableau avec déjà

pas mal de formule en tous genres, je souhaite passer mar le VBa.

merci de ta solution quand même.

cordialement

Bonsoir,

Pas bien certain d'avoir compris, ni que tous les cas soient gérés. On ne sait pas non plus comment et quand tu exécuteras ta macro?

Attention aussi que ta date en A4 se situe en l'an de grâce 217 (le séjour a été long, pour ces gens-là 1800 ans!)

Bref, que donnerait:

Sub mentions()
For lig = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(lig, 1) >= DateSerial(Year(Date), 1, 1) And Cells(lig, 2) < DateSerial(Year(Date), 4, 1) _
      Or Cells(lig, 1) >= DateSerial(Year(Date), 11, 1) And Cells(lig, 2) < DateSerial(Year(Date), 12, 31) Then Cells(lig, 3) = "Hors-saison"
Next lig
End Sub

à coller dans le module de la feuille concernée ... tu vois comment articuler avec le reste?

Merci U.milité

Cela fonctionne mais seulement sur les deux premières lignes (2 et 3), ensuite rien.

Aussi, je souhaiterai que cela soit une fonction et non une macro, si possible.

Tu m'as bien aidé, je vais essayer de bidouiller l'adapter.

Merci

Cela fonctionne mais seulement sur les deux premières lignes

De ce que j'avais compris, la 3e période (ligne 4) ne remplissait pas les conditions que tu avais énoncées ... donc rien ne s'indique (ou alors tu veux inscrire le mot 'rien' en lieu et place de 'Hors-saison'?)

Ceci dit, tu ne veux pas de formules, comme proposée par AFEH, mais tu veux une fonction écrite en VBA j'ai un peu de mal à te suivre ... Quel serait l'avantage des secondes par rapport aux premières?

Bonsoir

Effectivement, je préfère dans la mesure du possible passer par une fonction,

aussi la formule proposé par AFEH ne tien pas compte des deux critères enfin les quatres dates,

j'ai bien tenté d'insérer ou formule imbriquée avec ou et "et" mais en vain.

je pense approcher du but, mais je bloque ..

Function Mention(Date_debut As Date, Date_fin As Date)

    Date_debut = Range("A1")
    Date_fin = Range("B1")

    If Date_debut >= DateSerial(Year(Date), 1, 1) And Date_fin < DateSerial(Year(Date), 4, 1) _
          Or Date_debut >= DateSerial(Year(Date), 11, 1) And Date_fin < DateSerial(Year(Date), 12, 31) Then Mention = "Hors-saison"
    Else
        Mention = "Saison"
    End If

End Function

Merci de votre aide

Bonsoir,

Si tu voulais faire une fonction, tu ne t'y prends pas précisément comme il faut pour pouvoir l'utiliser...

Et tu te compliques un peu les conditions...

Function SAISON(dd, df) As String
    Dim hs As Boolean
    Application.Volatile
    hs = Month(dd) Mod 11 < 4 And Month(df) Mod 11 < 4
    SAISON = IIf(hs, "Hors Saison", "Saison")
End Function

Cordialement.

Bonsoir MFerrand,

Je ne te lirai plus aujourd'hui ... mais on considère que date de début et de fin seront systématiquement dans la même année? ... Ou alors ta proposition est valable si la location démarre une année x et prend fin l'année suivante?

Je vais me coucher, moi (les calculs sur les dates me font toujours cet effet-là )

Bonsoir U.Milité!

Le caractère En ou Hors Saison, se reproduit en principe identiquement tous les ans (jusqu'à ce qu'on le change), l'année n'entre donc pas en compte.

Un séjour début-fin peut être à cheval En/Hors mais il privilégie le Saison puisque l'on ne met Hors que si début et fin s'y trouvent.

C'est passionnant les dates ! Même si yadequoi s'énerver souvent avec les calculs dans Excel... Bonne nuit.

Bonsoir

Merci à tous, la solution fonctionne.

Je vais la regarder de plus prêt, comme le mentionne MFERRAND, je m'y suis mal pris pour cette fonction.

Merci bonne journée.

Rechercher des sujets similaires à "vba fonction mention dates"