Insérer une formule dans une cellule
Rookiz
-
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,
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,
A voir également:
- Insérer une formule dans une cellule
- Insérer une vidéo dans powerpoint - Guide
- Formule si ou - Guide
- Insérer une signature sur word - Guide
- Verrouiller une cellule excel dans une formule - Guide
- Insérer une légende word - Guide
7 réponses
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
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
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 ?
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 ?
re
es tu sur d'avoir indiqué le formulalocal dans ton affectation?
bonne suite
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
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 ;)
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 ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ...)
une question, que représente exactement la variable Nb_lignes (la dernière ligne contenant une valeur, la dernière ligne non vide , autre ...)
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.
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.
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 ;)
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 ;)