Formule
Résolu
Bonjour,
Je me suis crée un classeur avec plusieurs formules et une macro toute simple. La macro me permet d'insérer une ligne au dessus de la ligne 3 (en somme, j'insère toujours la ligne 3). Je me suis crée un bouton et chaque fois que j'appuie sur ce bouton, une ligne se crée bien au dessus de la ligne 3, mes mises en forme s'appliquent comme il faut, tout est bon.
Cependant, en N1, je me suis crée une formule afin que la cellule C3 s'affiche toujours en N1. Mais chaque fois que j'insère une ligne avec ma macro, la formule en N1 qui est "=C3" affiche "=C4" . Hors moi je veux qu'elle reste sur C3. J'ai essayé avec "$C3" mais ça fait la même chose.
C'est surement tout bête mais je n'arrive pas à trouver alors je me tourne vers vous. Y'a t-il une formule spécifique ?
Merci d'avance.
Je me suis crée un classeur avec plusieurs formules et une macro toute simple. La macro me permet d'insérer une ligne au dessus de la ligne 3 (en somme, j'insère toujours la ligne 3). Je me suis crée un bouton et chaque fois que j'appuie sur ce bouton, une ligne se crée bien au dessus de la ligne 3, mes mises en forme s'appliquent comme il faut, tout est bon.
Cependant, en N1, je me suis crée une formule afin que la cellule C3 s'affiche toujours en N1. Mais chaque fois que j'insère une ligne avec ma macro, la formule en N1 qui est "=C3" affiche "=C4" . Hors moi je veux qu'elle reste sur C3. J'ai essayé avec "$C3" mais ça fait la même chose.
C'est surement tout bête mais je n'arrive pas à trouver alors je me tourne vers vous. Y'a t-il une formule spécifique ?
Merci d'avance.
3 réponses
-
Bonjour
Pour obtenir ce que vous dédirez, il faut que la cellule N1 réagisse à chaque modification de votre feuille.
Vous pouvez tester ceci, soit vous copiez ce bout de code dans le module de la feuille en question.Private Sub Worksheet_SelectionChange(ByVal Target As Range) [N1] = [C3] End Sub
ou bien utilisez une formule=SIERREUR(SI(ESTVIDE(INDIRECT("C3"));"";INDIRECT("C3"));"")
Cdlt -
@ch_mika
Dans ton énoncé initial, tu as écrit : « la formule en N1 qui est "=C3"
affiche "=C4". Hors moi je veux qu'elle reste sur C3. J'ai essayé avec
"$C3". »
Mais ton signe "$" bloque la colonne C ! pour bloquer la ligne 3 : C$3
Parfois, on a besoin de bloquer la colonne et la ligne : $C$3
Le signe "$" se met toujours devant ce qu'on veut bloquer.
-
ContributeurBonjour tous
Dan
exact, mais le" blocage ne change pas la modification automatique de la formule lors de suppression de ligne
Ch_mika
en fait, (ça ne m'était pas venu à l'esprit tout de suite!!) mais inscrivez en N1:
=INDIRECT("C3")
le code transforme en adresse le texte entre guillemets et le texte lui ne change pas
crdlmnt -
-
@Vaucluse@Vaucluse
J'ai essayé mais ça ne fonctionne pas non plus quand je supprime la ligne. La référence "#REF!" s'inscrit de nouveau dans N1.
Finalement, c'est plus compliqué que je le pensait.
Merci à toi. -
Contributeur@ch_mikaLà je ne comprend pas quelle ligne vous supprimez pour que ça ne fonctionne pas
testé chez moi: si j'écris =INDIRECT("C3") en N1, c'est bien toujours la valeurs de C3 qui reste indiquée si je supprime ou j'ajoute des lignes entre ligne 1 et 3
Quel est alors votre problème? -
@VaucluseJe ne sais pas. En fait j'insère une ligne au dessus de la ligne 3 donc la nouvelle ligne devient la ligne 3 et l'ancienne devient la ligne 4. Ensuite, je supprime la nouvelle ligne 3 ce qui fait que la ligne 4 redevient la ligne 3.
Votre formule fonctionne quand j'insère une ligne mais pas quand je la supprime donc je ne comprends pas, c'est pourquoi je suis ici, je ne sais pas.
Et comme je veux que mon tableur ne comporte aucun défaut, je travaille à toutes les éventualités pour corriger certains problèmes qui pourraient arriver.
-
-
ContributeurBonsoir
si vous insérez une ligne dans le champ, de la formule, bloquée ou non, elle va se décaler
Essayez d'inclure la mise en place de la formule (=C3) dans la macro qui insère la ligne pour la régénérer à chaque insertion.
Range("N1").Select
ActiveCell.FormulaR1C1 = "=R[2]C[-11]"
crdlmnt