Signaler

Formule [Résolu]

Posez votre question ch_mika 136Messages postés lundi 19 janvier 2015Date d'inscription 8 juillet 2017 Dernière intervention - Dernière réponse le 19 juin 2017 à 12:58 par ch_mika
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.
Afficher la suite 
Utile
+0
plus moins
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
ch_mika 136Messages postés lundi 19 janvier 2015Date d'inscription 8 juillet 2017 Dernière intervention - 16 juin 2017 à 20:48
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.
Répondre
Donnez votre avis
Utile
+0
plus moins
@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.
 
Vaucluse 20110Messages postés lundi 23 juillet 2007Date d'inscription ContributeurStatut 8 août 2017 Dernière intervention - 19 juin 2017 à 06:49
Aucun rapport avec le format. Si ça ne fonctionne pas chez vous, c'est probablement qu'il y a dans la macro quelque chose qui casse la formule.
Si vous pouvez, déposez le modèle sur le site où vous avez trouvé le mien et revenez coller ici le lien créé
Répondre
ch_mika 136Messages postés lundi 19 janvier 2015Date d'inscription 8 juillet 2017 Dernière intervention - 19 juin 2017 à 12:41
Oui sans aucun doute. Et comme je ne suis pas un expert en VBA, il y a de fortes chances qu'il y ait une ou plusieurs erreurs dans mon code.

Voilà le fichier :
http://www.cjoint.com/c/GFtkM71iJZd
Répondre
Vaucluse 20110Messages postés lundi 23 juillet 2007Date d'inscription ContributeurStatut 8 août 2017 Dernière intervention - 19 juin 2017 à 12:51
éh bé? vous n'avez pas du tout lire ce que je vous ai écrit dans le précédent message, soit, rappel ci dessous:
"On est bien d'accord, vous avez écrit en N1 =INDIRECT("C3") et vous avez supprimé de la macro les lignes qui implantaient la formule en N1?"

or votre macro contient toujours ces lignes
Range("N1").Select
ActiveCell.FormulaR1C1 = "=R[2]C[-11]"
qui efface la formule =INDIRECT("C3") chaque fois que vous insérez une nouvelle ligne

Alors forcément, ça ne fonctionne pas!

Notez aussi que quand C3 est vide, N1 renvoie la date de samedi 0/0/1900 (qui correspond au 0 sur excel)
cet affichage disparait bien sur lorsque vous placez une date en C3, mais vous pouvez le masquer via les options Excel:
onglet fichier / option / option avancées et dans la liste, décochez "afficher un 0 dans ..."
crdlmnt
Répondre
ch_mika 136Messages postés lundi 19 janvier 2015Date d'inscription 8 juillet 2017 Dernière intervention - 19 juin 2017 à 12:58
Effectivement, j'ai mal lu. J'ai confondu entre supprimer la formule de la macro et supprimer mon ancienne formule de la cellule.

En tous les cas, ça fonctionne bien maintenant.

Je tiens à vous remercier beaucoup pour le temps consacré, c'est très apprécié.

Je mets ce sujet en résolu.

Cordialement.
Répondre
ch_mika 136Messages postés lundi 19 janvier 2015Date d'inscription 8 juillet 2017 Dernière intervention - 18 juin 2017 à 06:25
@Dan

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

Merci.
Répondre
Donnez votre avis
Utile
-1
plus moins
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 136Messages postés lundi 19 janvier 2015Date d'inscription 8 juillet 2017 Dernière intervention - 18 juin 2017 à 18:02
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.
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !