Formule

Résolu
ch_mika Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   -  
ch_mika Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

3 réponses

Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonsoir
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
0
ch_mika Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   71
 
Tout d'abord merci,

Votre formule marche mais malheureusement, si je viens à supprimer la ligne que je viens de créer pour x raison, la valeur de N1 change à nouveau et je me retrouve avec "#REF!" dans la case N1 au lieu de me réafficher la valeur précédent l'insertion de la nouvelle ligne.
0
dan
 
@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.
 
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour 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
0
ch_mika Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   71
 
@Dan

Oui je le sais mais évidemment, j'avais essayé toutes les sortes de $.

Merci.
0
ch_mika Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   71 > Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention  
 
@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.
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438 > ch_mika Messages postés 188 Date d'inscription   Statut Membre Dernière intervention  
 
Là 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?
0
ch_mika Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   71 > Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention  
 
Je 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.
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
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
-1
ch_mika Messages postés 188 Date d'inscription   Statut Membre Dernière intervention   71
 
Bonjour et merci, mais malheureusement, cette formule me renvoie à un chiffre qui n'a aucun rapport avec ce que je veux.

Merci quand même.
0