FormulaR1C1 ?

M

MangePasDpain

Guest
Bonjour à tous,

Si j'écris ca ....ca marche

Range((Range("Administration!B3").Value) & "!" & "B5").Value = _
"=VALUE(RIGHT(Table!" & ActiveCell.Offset(1, 0).Address & ",2))+1 &"" / "" &LEFT(Table!" & ActiveCell.Offset(1, 0).Address & ",4)"

Mais si j'écris ca.....ca marche plus

Range((Range("Administration!B3").Value) & "!" & "B5").FormulaR1C1 = _
"=VALUE(RIGHT(Table!" & ActiveCell.Offset(1, 0).Address & ",2))+1 &"" / "" &LEFT(Table!" & ActiveCell.Offset(1, 0).Address & ",4)"

Etant relativement nouveau en bidouillage sous excel,je me retrouve completement bloqué....sans savoir comment proceder.

Merci à tous ceux qui prendront le temps de me répondre.
 
R

Rai

Guest
Bonsoir,

Pas très orthodox ton code.
Pour commencer, et pour permettre de bien répondre, il pourrait-être utile de savoir quelles données tu appelles.

Peut-être pourrais-tu mettre ton fichier en PJ, ou donner quelques explications.

Autrement, pour continuer, j'écrirais les choses autrement.
Au lieu de
Range((Range("Administration!B3").Value) & "!" & "B5")
Plutôt
Sheets(Sheets("Administration").[B3]).[B5]


Pour continuer, si tu veux utiliser la propriété .FormulaR1C1, il faut générer une formule de ce genre là : =RC(-1) / R(2)C(4)


Est-ce bien le cas ?

Bonne soirée

Rai
 
@

@+Thierry

Guest
Bonsoir "MangePasDePain", Rai, le Forum

Il faut aussi noter la possibilité d'utiliser directement "Formula" qui permet de faire référence aux cellules directement (et simplement) par exemple :

Range("B1").Formula = "=SUM(A1:A100)"

Ou encore

Dim LastLigne As Integer
Dim WSName As String

WSName = Worksheets("Administration").Range("B3")

LastLigne = Worksheets(WSName).Range("A65536").End(xlUp).Row

Worksheets("Sheet1").Range("B1").Formula = "=SUM(" & WSName & "!A1:A" & LastLigne & ")"


Pour ce qui est des Crochets... Moi, perso je ne les aime pas... (Voir, entre autre, ce Fil de Discussion : Lien supprimé

Bonne Soirée et Week End
@+Thierry
 
R

Rai

Guest
Salut Thierry,

OK, j'ai bien lu le fil à propos des crochets.
J'avais, pour l'instant, pas entendu parler du baisse de performances,
mais je veux bien le croire.
D'autant plus Que l'ami Person est vraiment une référence, LL aussi d'ailleurs.

J'en retiendrai que les crochets sont parfois sympa, pour les petits développements, avec peu de cellules à parcourir (flemme quand tu nous tiens), mais que Range (ou Cells ?) est plus prometteur pour ole reste.

De toutes façons Range & Cells sont souvent plus pratiques pour parcourir des plages.

-------

Tiens au fait, qu'est qui serait le plus rapide dans une boucle :
Range("A1").Offset(i,0)
ou
Cells(i,1) ???

Faudra que je teste

Cordialement

Rai
 

Discussions similaires

Réponses
12
Affichages
714
  • Résolu(e)
Microsoft 365 Code VBA
Réponses
7
Affichages
763
Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 488
Messages
2 088 866
Membres
103 979
dernier inscrit
imed