Insertion de date dans texte sous VBA

Bonjour,

à l'aide d'une macro, je modifie certaines dates se situant dans certaines formules de mon fichiers selon l'année en court.

Cependant, alors que tout mon code fonctionne, il y a 3 formules récalcitrantes qui m'empêche de finaliser la macro alors qu'elles n'ont rien d’extraordinaire.

Range("K5").Select
    ActiveCell.FormulaR1C1 = _
        "=COUNTIFS('BDD Créa'!C11,'Synthèse 1'!RC2,'BDD Créa'!C39,""<>"" & """",'BDD Créa'!C38,"">="" & ""01/01/2016"",'BDD Créa'!C38,""<="" & ""31/12/2016"")"
    Range("K5").Select
    Selection.AutoFill Destination:=Range("K5:K9"), Type:=xlFillDefault

Voici la première que je tente de modifier pour mettre une variable à la place des années apparentes (ici 2016) :

Range("K5").Select
    ActiveCell.FormulaR1C1 = _
        "=COUNTIFS('BDD Créa'!C11,'Synthèse 1'!RC2,'BDD Créa'!C39,""<>"" & """",'BDD Créa'!C38,"">="" & ""01/01/" & n1 & ",'BDD Créa'!C38,""<="" & ""31/12/" & n1 & ")"
    Range("K5").Select
    Selection.AutoFill Destination:=Range("K5:K9"), Type:=xlFillDefault

alors que j'utilise la même technique sur une formule presque identique, celle-ci ne fonctionne pas.

Pour info, n1 = Year(Date)

Je vous remercie d'avance !

Bonjour,

Essaie ainsi :

    Dim n0 As Date, n1 As Date
    '[...]
    n0 = DateValue("01/01"): n1 = DateValue("31/12")
    Range("K5").FormulaR1C1 = _
     "=COUNTIFS('BDD Créa'!C11,'Synthèse 1'!RC2,'BDD Créa'!C39,""<>"" & """",'BDD Créa'!C38,"">=""" _
     & n0 & ",'BDD Créa'!C38,""<=""" & n1 & ")"
    Range("K5").AutoFill Destination:=Range("K5:K9"), Type:=xlFillDefault

J'indique les déclarations (ne figurant pas dans ton bout de code, et qui doivent figurer en tête de procédure...

NB - Tout Select est toujours inutile et n'a pour effet que de ralentir l'exécution (on ne le répète pas assez il semble !)

Note que xlFillDefault est aussi inutile ici, et que l'argument Destination étant le premier de la méthode tu peux te dispenser d'utiliser le passage d'arguments par noms...

NB2 - L'omission de l'année dans l'expression de date soumise à la fonction DateValue conduit cette dernière à considérer qu'il s'agit de l'année courante.

Cordialement.

Bonjour MFerrand,

Merci déjà pour ta proposition et pour les indications !

Par contre, les lignes du même type que j'ai adapté selon ta solution ne fonctionnent toujours pas

ActiveCell.FormulaR1C1 = _
"=SUMIFS('BDD HA'!C61,'BDD HA'!C3,'Synthèse 1'!RC2,'BDD HA'!C58,"">=""" & n0 & ",'BDD HA'!C58,""<=""" & n00 & ")/1000000+SUMIFS('BDD PI'!C75,'BDD PI'!C3,'Synthèse 1'!RC2,'BDD PI'!C74," & n1 & ")/1000000"

Où n0 = "01/01"

n00 = "31/12"

n1 = Year(Date)

En te remerciant !

Re bonjour tout le monde,

finalement, j'ai opté pour un enregistreur de macro lié avec quelques variables mis en place afin de modifier les dates présentes dans les formules à l'aide de la fonction "Remplacer" !

Ce qui me donne :

Cells.Replace What:=n, Replacement:=n1, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

Merci encore à ceux qui se sont penchés sur le sujet !

Rechercher des sujets similaires à "insertion date texte vba"