Insérer une formule dans une cellule

Rookiz -  
 Rookiz -
Bonjour à tous et merci d'avance pour votre aide,

Voila, j'ai un tableau ou je rajoute régulièrement des lignes (je RAJOUTE pas vraiment en fait)

J'ai un UserForm ou je demande les information obligatoire a chaque nouvel enregistrement, que je copie ensuite à la fin de mon tableau (de la colonne A à E).

En G je copie la date du jour de l'enregistrement.
Et en H, j'ai normalement une formule qui me calcule une nouvelle date.

Alors, la formule est :
=DATE(ANNEE(G11)+ARRONDI.INF((MOIS(G11)+25)/12;0);MOD(MOIS(G11)+25;12);JOUR(G11))

Mais quand je veux l'automatiser, j'y arrive pas.
Voila mon code :
Cells(Nb_lignes + 1, 10).FormulaLocal = "=DATE(ANNEE("G" & Nb_lignes + 1)+ARRONDI.INF((MOIS("G" & Nb_lignes + 1)+25)/12;0);MOD(MOIS("G" & Nb_lignes + 1)+25;12);JOUR("G" & Nb_lignes + 1)"

Ce qui est en gras c'est ce qui me permet d'identifier la cellule cible.
NB_ligne est ma variable ou j'ai calculé le nombre de ligne pour arriver en bas de mon tableau.

En fait, je sais que ça ne peux pas marcher à cause des guillemets ... mais j'arrive pas a résoudre ce problème ... ou à le contourner.

Sauriez-vous m'aider ?

Amicalement,

7 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonsoir

    si la formule
    f ="=DATE(ANNEE(G11)+ARRONDI.INF((MOIS(G11)+25)/12;0);MOD(MOIS(G11)+25;12);JOUR(G11)) "
    est correcte
    tu fais un

    remplacer
    11
    par
    " & nb_lignes+1 & "

    chez moi ça donne

    f = "=DATE(ANNEE(G" & nb_lignes + 1 & ")+ARRONDI.INF((MOIS(G" & nb_lignes + 1 & ")+25)/12;0);MOD(MOIS(G" & nb_lignes + 1 & ")+25;12);JOUR(G" & nb_lignes + 1 & "))"

    bonne suite
    0
  2. Rookiz
     
    Merci ccm81 pour ta réponse.

    Ta solution a de meilleur résultat que la mienne. Merci beaucoup.

    Mais en fait, y a toujours un soucis.
    C'est que la formule est bien écrite, mais elle apparaît sous forme de texte (ou de donnée) dans la cellule.

    Es-ce que tu vois ce que je veux dire ?
    0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re

    es tu sur d'avoir indiqué le formulalocal dans ton affectation?

      f = "=DATE(ANNEE(G" & nb_lignes + 1 & ")+ARRONDI.INF((MOIS(G" & nb_lignes + 1 & ")+25)/12;0);MOD(MOIS(G" & nb_lignes + 1 & ")+25;12);JOUR(G" & nb_lignes + 1 & "))"
      Cells(nb_lignes + 1, 10).FormulaLocal = f


    bonne suite
    0
  4. Rookiz
     
    Merci encore ccm81 pour ton suivie.

    Je crois avoir trouvé l'origine de mon problème.

    Toutes mes cellules sont au format "Texte"

    J'ai fais un test en mettant quelque ligne de fin de tableau au format "Standard", mais suite à cela, j'ai un autre soucis.

    J'utilise cette formule pour calculer le nombre de mes lignes :
    Sheets("Habilitations").Select
    Nb_lignes = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row


    Mais une fois que je modifie le format de ma cellule, ça fou en l'air mon compteur qui prend en compte les cellules ou j'ai modifié le format (sans rien mettre dedans pourtant).

    Je sais bien que ça n'a plus rien a voir avec le problème initial, mais tu aurais une idée ?

    En tout cas, merci encore d'avoir résolu mon problème pour la formule ;)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re

    une question, que représente exactement la variable Nb_lignes (la dernière ligne contenant une valeur, la dernière ligne non vide , autre ...)
    0
  7. Rookiz
     
    Nb_lignes réprésente le numéro de la dernière ligne non vide.

    Ce que je trouve bizarre, c'est qu'il considère que la modification du format représente une donnée.
    Et donc, mon interprétation de cette ligne de commande est peut-être fausse.

    C'est peut-être "SpecialCells(xlCellTypeLastCell)" qui permet de prendre en compte tout ça (données, format, ...)

    Moi ce qui m'importe le plus, c'est de connaître le numéro de la dernier ligne non-vide, ou alors le numéro de la première ligne vide.
    0
  8. Rookiz
     
    Bon, après différent test sur les différents format, je m'appercoie que le format "Date" ne perturbe pas l'insertion de la formule ... contrairement au format "Standard". Et tant mieux, c'est de celui la dont j'ai besoin :D.

    Donc tout fonctionne maintenant comme je le souhaitai.

    Mais je ne comprend toujours pas cette interprétation du format.
    J'vais continuer a chercher parce que je sais que ça va me trainer dans le crane un moment... hé hé hé ^^

    En tout cas, merci beaucoup ccm81 pour ton aide.
    Très bonne journée à toi ;)
    0