Forcer formule dans une cellule

hindoussa

XLDnaute Nouveau
Bonjour,

Je rencontre un problème en ce moment et j'aurais besoin de votre préciseuse aide:

Sur une cellule fixe A1: Si l'utilisateur appuis sur effacer, qu'on force une certaine formule à se remettre dedans.

Merci d'avance.
 

francedemo

XLDnaute Occasionnel
Re : Forcer formule dans une cellule

bonjour,

tu peux essayer :
Code:
Private Sub worksheet_SelectionChange(ByVal Target As Range)

If Not Application.Intersect([A1], Target) Is Nothing And Target = "" Then
        Target.FormulaR1C1 = "=2*5"
End If

End Sub

en remplaçant "2*5" par la formule que tu veux valider,
le seul soucis est qu'il faut cliquer sur la cellule A1 pour que la formule se mette dedans

après quelques essais:
Code:
Private Sub worksheet_SelectionChange(ByVal Target As Range)

If Application.Intersect([A1], Target) Is Nothing Then
    If [A1] = "" Then [A1].FormulaR1C1 = "=2*5"
End If

End Sub

devrait réaliser ce que tu as besoin
à+
 

hindoussa

XLDnaute Nouveau
Re : Forcer formule dans une cellule

Merci pour ton aide.
Ca marche bien comme tu l'as dis.

Par contre j'ai oublié de préciser, je force une formule assez spéciale (TM1)
Et ça fait des erreurs.
Pour être plus explicite ça ressemble à ça:
Range("Choix").FormulaR1C1 = "SUNM(Server&"dim_A";"";"")"

C'est peut être un problème de "" ?
 

olivier73

XLDnaute Nouveau
Re : Forcer formule dans une cellule

Bonjour

Dans le code de francedemo, à la place de =2*5, comment je modifie cette partie pour changer par la formule =G6. Donc par rapport à une cellule ?
j'ai essayé directement, mais ça m'affiche ='G6'.

Merci
 

Dranreb

XLDnaute Barbatruc
Re : Forcer formule dans une cellule

G6 c'est du style A1, pas du style R1C1. Par rapport à la cellule A1 toujours ?
Formula = "=G6" équivaut à FormulaR1C1 = "=R[5]C[6]"
Formula = "=$G6" équivaut à FormulaR1C1 = "=R6C[6]"
Formula = "=G$6" équivaut à FormulaR1C1 = "=R[5]C7"
Formula = "=$G$6" équivaut à FormulaR1C1 = "=R6C7"
Mais le 3 1ers ne sont valables que pour la cellule A1. Les décalages entre crochet sont toujours par rapport à la cellule qui porte la formule.
 

francedemo

XLDnaute Occasionnel
Re : Forcer formule dans une cellule

R1C1 sont des référence en Rows et Column
relis le post #9 de Dranreb, il est très explicite !!!

Formula = "=G6" équivaut à FormulaR1C1 = "=R[5]C[6]" => décalage relatif de 5 lignes et 6 colonnes
Formula = "=$G6" équivaut à FormulaR1C1 = "=R6C[6]" => lignes 6 et décalage relatif de 6 colonnes
Formula = "=G$6" équivaut à FormulaR1C1 = "=R[5]C7" => décalage relatif de 5 lignes et colonnes 7
Formula = "=$G$6" équivaut à FormulaR1C1 = "=R6C7" => lignes 6 et colonnes 7

je ne suis pas sur, perso, je comprends (par rapport à "A1") :
Formula = "=G6" équivaut à FormulaR1C1 = "=R[5]C[6]"
Formula = "=$G6" équivaut à FormulaR1C1 = "=R[6]C7"
Formula = "=G$6" équivaut à FormulaR1C1 = "=R6C[6]"
Formula = "=$G$6" équivaut à FormulaR1C1 = "=R6C7"

attendons Dranreb pour en savoir plus...
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Forcer formule dans une cellule

C'est qu'il me semble avoir presque tout dit.
Ah, non. Quand il n'y a pas de décalage il n'y a pas de crochet. RC désigne donc la cellule qui porte la formule. Pour une colonne entière il n'y a pas de R du tout et pour une ligne entière il n'y a pas de C.
A1 "G:G" équivaut à R1C1 "C[6]" s'il est mentionné dans une formule de la colonne A
A1 'G:G" équivaut à R1C1 "C" s'il est mentionné dans une formule de la colonne G
A1 "$G:$G" équivaut à R1C1 "C7"
A1 "6:6" équivaut à R1C1 = "R[5]" s'il est mentionné dans une formule de la ligne 1
A1 "6:6" équivaut à R1C1 = "R" s'il est mentionné dans une formule de la ligne 6
A1 "$6:$6" équivaut à R1C1 = "R6"
Le style R1C1 peut aussi être considéré comme la forme native du L1C1. Vous pouvez choisir d'afficher les entêtes de colonnes et vos formule en style L1C1.
Cordialement.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz