Ajouter une condition à une macro

Bonjour le Forum,

J'utilise une macro pour insérer dans la cellule courante la date inversée du jour où on appuie sur le bouton lié à la macro :

Sub Insérer_date_inversée()
    Selection.NumberFormat = "General"
    ActiveCell.FormulaR1C1 = _
        "=VALUE(MID(YEAR(NOW()),3,2)&IF(MONTH(NOW())<10,""0""&MONTH(NOW()),MONTH(NOW()))&IF(DAY(NOW())<10,""0""&DAY(NOW()),DAY(NOW())))"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Selection.NumberFormat = "@"
End Sub

J'aimerais la complexifier un peu, en détectant s'il existe déjà une valeur dans la cellule.

Si non, on insère la date inversée (comme ci-dessus, ou peut-être d'une façon plus simple, ce que je ne sais pas faire).

Si oui, on garde la précédente date, mais on la fait précéder de la date du jour, puis le signe "+" puis la valeur déjà présente dans la cellule. Par exemple, si la cellule vaut "191224", en cliquant aujourd'hui sur le bouton, elle sera égale à "200204 + 191224".

Tout cela dépasse mes capacités en VBA, donc j'ai besoin d'aide.

Merci.

Bonjour Gloub, bonjour le forum,

Pas sûr d'avoir compris si tu voulais concaténer les dates ou les additionner. Le code ci-dessous les concatène...

Sub Insérer_date_inversée()
Select Case ActiveCell.Value
    Case ""
        D = Format(DateSerial(Year(Date), Month(Date), Day(Date)), "yymmdd")
        ActiveCell.Value = D
        Selection.NumberFormat = "@"
    Case Else
        D = Format(DateSerial(Year(Date), Month(Date), Day(Date)), "yymmdd")
        ActiveCell.Value = CStr(D) & " + " & CStr(ActiveCell.Value)
        Selection.NumberFormat = "@"
End Select
End Sub

Je voulais les concaténer, c'est donc PARFAIT !

Merci !!!!!!

Rechercher des sujets similaires à "ajouter condition macro"