Formules relatives dans 4D View Pro

Je pratique les tableurs depuis Visicalc et j’ai toujours pu mettre des références relatives dans les formules, par exemple LC-1 pour la cellule de la colonne précédente sur la même ligne.
La notation retenue dans View Pro et dans d’autres tableurs est du type B3 pour la 2e colonne, 3e ligne ; si on la met dans une formule, elle se comporte comme une référence relative.
Mais si on veut écrire des formules dans des cellules multiples, il faut redéterminer les coordonnées à chaque cellule.
Vous pouvez me confirmer qu’il n’y a pas de notation LC, ni à court terme ?
Je n’ai pas trouvé de solution pour copier la première formule et la coller dans les lignes suivantes, pour faire ce qui fonctionne à la main.

Salut Bernard,
je ne suis pas sûr d’avoir pigé ta question, désolé si je suis à coté. Si elle porte sur la notation absolue en mode “lettre pour colonne-chiffre pour ligne” (par opposition au LC), c’est “$” devant la colonne ou la ligne qui le dit : par ex $B$3 = absolu pour colonne et ligne.
Je n’ai jamais été fan de la notation LC, c’est verbeux…

Voici un exemple

[]33538577;“Your comment here…”[/]

La colonne C est un solde cumulé.
Pour la ligne 3, la formule est C2-B3
Pour la ligne 4, la formule est C3-B4
Si je veux mettre cette formule par programmation, il faut que je fabrique une formule par ligne.
Si j’avais [L-1C]-[LC-1], j’aurais une seule formule et je pourrais la coller sur 2, 10, 1000 lignes d’un coup.

Voualà !

ok gé gombris. https://doc.4d.com/4Dv18/4D/18/References-des-cellules.300-4522353.fr.htmlLa doc> ne mentionne que la notation A1, en effet. Je goûte si peu cette notation LC que je n’avais jamais pensé qu’elle est plus simple pour construire des formules en amont…
J’ai un convertisseur de numéro de colonne en lettre, pas mieux à te proposer :
<code 4D>
//Xls_columnNumberFromDecimal (numColonneDecimal_l) -> txt
//$0 : $1 converti en notation colonne tableur
// decimal * 1, 2…26, 27, 28…703
// tableur * A, B…Z, AA, AB…AAA
//méthode ré-entrante
C_TEXT($0;$out_t)
C_LONGINT($1;$unite;$base)
//_
If (False) //tests unitaires
SET ASSERT ENABLED(True)
ASSERT(Xls_columnNumberFromDecimal (9)=“I”)
ASSERT(Xls_columnNumberFromDecimal (27)=“AA”)
ASSERT(Xls_columnNumberFromDecimal (122)=“DR”)
ASSERT(Xls_columnNumberFromDecimal (258)=“IX”)
ASSERT(Xls_columnNumberFromDecimal (677)=“ZA”)
ASSERT(Xls_columnNumberFromDecimal (703)=“AAA”)
ASSERT(Xls_columnNumberFromDecimal (1024)=“AMJ”)
ASSERT(Xls_columnNumberFromDecimal (2040)=“BZL”)
End if
$out_t:=""
ASSERT(Count parameters>0)
$nbre_l:=$1
ASSERT($nbre_l>0)
$unite:=Mod($nbre_l-1;26)+1
$base:=Int(($nbre_l-1)/26)
If ($base>0)
$out_t:=Xls_columnNumberFromDecimal ($base)+$out_t
End if
$0:=$out_t+Char($unite+64)
</code 4D>

Y’a une fonction https://doc.4d.com/4Dv18/4D/18/COLUMNLETTER.301-4522318.fr.htmlCOLUMNLETTER> de fournie, aussi.

L’impact en performance est colossal.
Pour écrire 600 lignes de 12 colonnes, il faut une seconde, traitement compris.
Pour rajouter 600 formules, il faut 8 secondes de plus.
Pas terrible…
J’ai essayé de mettre une formule dans la collection de collections mais VP la considère comme du texte.

Bonjour,

: Bernard ESCAICH

J’ai essayé de mettre une formule dans la collection de collections
mais VP la considère comme du texte.
Avez-vous essayer avec VP SET FORMULAS ?

: Bernard ESCAICH

Vous pouvez me confirmer qu’il n’y a pas de notation LC, ni à court
terme ?

La notation RC existe en View Pro. Vous pouvez l’activer via la toolbar ou utiliser cette ligne de commande:

<code 4D>
WA Evaluate JavaScript(*;“ViewProArea”;“Utils.spread.options.referenceStyle = GC.Spread.Sheets.ReferenceStyle.r1c1”)
</code 4D>

Voici la documentation de cette écriture: https://www.grapecity.com/spreadjs/docs/v13/online/relative.html

votre calcul s’écrit alors:
<code 4D>
VP SET FORMULA (VP Cells (“ViewProArea”;2;2;1;10);“R[-1]C-RC[-1]”)
</code 4D>