Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modifier dans une formule la référence à une cellule para la valeur de celle-ci.

7 réponses
Avatar
blutch
Bonsoir a tous,

Est-il posible, para macro, de modifier une formule, par exemple "=3DA1*B1"=
, par =3D150*15%, c'est =E0 dire les valeurs respectivement de A1 et B1 ?

Merci d'avance pour votre aide.

A bient=F4t

Blutch

7 réponses

Avatar
MichD
Bonjour,

Voici un exemple comment procéder :

'-------------------------------------------------------
Sub test()
Dim Trouve As Range
Application.ScreenUpdating = False
Application.EnableEvents = False

'Adapte le nom de l'onglet de la feuille
With Worksheets("Feuil1")
'Adapte la plage de cellules.
'Si tu veux couvrir toute la feuille, remplace
'.Range("B1:B" & .Range("B65536").End(xlUp).Row)
'par .UsedRange
With .Range("B1:B" & .Range("B65536").End(xlUp).Row)
Set Trouve = .Find(What:="¡*B1", LookIn:=xlFormulas, _
lookat:=xlWhole)
If Not Trouve Is Nothing Then
Do
Trouve.Formula = "0*15%"
Set Trouve = .FindNext(Trouve)
Loop Until Trouve Is Nothing
End If
End With
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'-------------------------------------------------------
Avatar
MichD
A ) La discussion doit se faire à partir du forum sur Excel.
Je ne peux pas me permettre personnellement à tout ceux qui seraient
tentés de faire comme toi.

B ) Pour faire ce que tu veux, il faudrait connaître la liste des cellules,
leur contenu et
la formule à remplacer. Si tu as des centaines, voir de milliers de
cellules où tu as
ce type de formule, établir cette liste prendra autant de temps que de
faire manuellement
ce que tu veux faire par macro...

J'avoue de ne pas comprendre la finalité de ta démarche!
Avatar
blutch
Désolé, je me suis trompé de bouton... J'espère que celui-ci est le bon.

Je vais essayer d'être plus précis en prenant l'exemple d'un tableau d' amortissement avec:
- dans les cellules A1: A5, des montants,
- dans les cellules B1: B5, des coefficients,
- Dans les cellules C1: C5, une formule du genre =$A1xB1, =$A2xB2...

Si je copie mes formules de la colonne C vers les colonnes D, E, F..., j'ob tiendrais le même résultat étant donné que j'ai figé mes colonnes .

Il peut m'arriver d'avoir besoin à un moment donné (colonne G, par exem ple) de changer le coefficient de la colonne B, mais avant cela je voudrais pouvoir figer les formules des colonnes précédantes (en conservant le détail de celles-ci).
En effet, ce changement de coefficient ne doit pas affecter les colonnes C à F.

Merci et à bientôt

Blutch
Avatar
MichD
Si j'ai bien compris, le plus simple est d'utiliser un "NOM" que tu peux
créer pour chaque variable que tu as dans tes formules. Si tu veux
faire une modification, tu modifies simplement à un endroit la valeur
du nom. Évidemment, tu utilises ces noms dans les formules à la place
de leur valeur. Tu peux même utiliser des formules dans ces noms...

Pour créer un nom et lui attribuer une valeur, barre des menus du ruban/
Formules /
section : Noms définis / Commande : Définir un nom.

Tes formules dans ta feuille de calcul sont alors constituées de noms
définis. Pour
apporter des modifications, tu modifies la valeur ou la formule que
contiennent ces
noms. C'est beaucoup plus simple que de vouloir établir des procédures pour
substituer des parties de formules dans une plage de cellules.
Avatar
MichD
Tu as un petit exemple ici pour illustrer mon propos:

http://cjoint.com/?DBbojy09aPf
Avatar
blutch
Merci beaucoup pour ta réponse.

Je vais jeter un oeil à ton exemple dès que possible.

À bientôt

Blutch
Avatar
MichD
Bonjour,

Désolé pour le délai... mais nous sommes ici à titre de bénévoles
et par conséquent chacun d'entre nous a d'autres préoccupations ailleurs.

Je te propose un fichier créé par Misange quant à la manière d'élaborer
une petite base de données dans Excel.
http://cjoint.com/?DBbpBEzWZyA

Regarde les formules dans la feuille "Base"