Excel (VBA) : Modifier contenu formule

Septimel -  
 Septimel -
Bonjour,

Je souhaiterais savoir comment rédiger une requete qui va aller vérifier non pas le contenu d'une cellule mais la formule elle-même de la cellule Excel, et la modifier.

Dans Excel, une formule commence par le symbole "="

Je voudrais donc (par exemple)

1. Savoir si la cellule A1 contient une formule
Dans cellule A1 il est écrit "=B1+C1"

2. Modifier une partie de cette formule (je voudrais remplacer C1 par D1)

J'étais parti sur

If left(MyWorksheet.Cells(1, "A") = "=" then
MyWorksheet.Cells(1, "A") = left(MyWorksheet.Cells(1, "A"), 3) & 'D1'
End If

Ce n'est surement pas la bonne solution, car je me prends un typemismatch dans la figure (évidemment, ca semblait trop simple).

Auriez vous une solution?

En vous remerciant d'avance
A voir également:

3 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour,
utilise
If tacellule.HasFormula Then
...ton code
end if

syntaxe de cells:
cells (12,3) pour C12 et non cells(12, "C")

voir cet exemple
With ActiveSheet.Cells(1, 1)
If .HasFormula Then
.FormulaR1C1Local = .Cells(1, 3) + .Cells(1, 4)
End If
End With
1
Septimel
 
Rebonjour... je me rend compte que j'ai écris

If left(MyWorksheet.Cells(1, "A") = "=" then

je voulais écrire

If left(MyWorksheet.Cells(1, "A"), 1 ) = "=" then
0
Septimel
 
Merci beaucoup, j'ai compris le principe :)
0