- Formule dans cellule par VBA

J

JB

Guest
- Salut les Forumwomen et Forumen, c'est encore le débutant qui fait appel à vous.

J'ai essayé d'insérer une formule dans une cellule par une macro.

Ex: Range("F4").FormulaR1C1 = "=Feuil2!D7"

Dans ma cellule apparait:

=Feuil2!'D7'

qui bien sûr n'est pas reconnu!

Comment faire pour empêcher l'apparition de ces ' ?

Merci d'avance.

JB
 
J

JB

Guest
- Salut Pascal76,

je te remercies de ta réponse:

Range("F4").FormulaR1C1= "=Feuil3!R[3]C[-2]"

elle marche sur une feuille normale.

Seulement j'ai oublié de te dire que ma cellule F4 ne peut être prise en considération par R[3]C[-2]... car j'ai donné cette valeur dans mon exemple initial mais il s'agit d'une cellule dont l'adresse varie fréquemment.

Comme tu vois je me crée des vrais problêmes qui dépassent de loin mon niveau.

Peux-tu à nouveau te pencher sur mon problême?

Merci encore.
JB
 
P

Pascal76

Guest
re

Il faudrait que tu mettes un peu plus de détails de ce que tu veux que l'on puisse regarder.

Sinon esaies ce genre de formule

Range("F4")= Sheets("Feuil2").Range("D3").FormulaArray

Cela permet de copier la formule contenu en D3 dans F4

Tu me tiens au courant


Pascal
 
J

JB

Guest
Désolé Pascal mais çà ne marche pas dans ma macro.

Je t'explique:

Je crée régulièrement des feuilles reprenant chacune en F4 une valeur, feuille dans lesquelles je travaille, faisant changer la valeur de F4.

Exemple la feuille ALPHA

A B C ... F
1 ALPHA
2
3
4 550
5

J'ai déjà une feuille qui LISTE une partie des renseignements de chaque feuille.

A B C ... F
1 ALPHA 550
2
3
4

A chaque création d'une feuille, la liste se complète et se trie automatiquement par ordre alphabétique sur base de la colonne A qui reprend les noms des autres feuilles.

La ligne reprenant le nom ALPHA change de place suivant les nouvelles feuilles créées et l'ordre alphabétique.

J'aimerais que quand la valeur de F4 change dans la feuille ALPHA la valeur correspondante dans la feuille LISTE se mette à jour automatiquement.

J'espère avoir été assez clair car j'ai déjà envoyé une demande dans ce sens mais mes explications étaient assez confuses.

JB
 
J

JB

Guest
- Salut Pascal, merci de l'attention que tu portes à mon problême.

J'ai créé une petite macro qui semble fonctionner.
Peux-tu me donner ton avis?

Sub TEST()
Dim nomsheet As String
Sheets("Personnel").Range("A1", Range("A1").End(xlDown)).Select
For Each Cell In Selection
Cell.Select
nomsheet = ActiveCell.Value
If ActiveCell.Offset(0,5).Value <>Sheets(nomsheet).Range("F4").Value Then
ActiveCell.Offset(0,5).Value = Sheets(nomsheet).Range("F4").Value
End If
Next Cell
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
313 020
Messages
2 094 435
Membres
106 027
dernier inscrit
DonSparks