Excel (VBA) : Modifier contenu formule

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
Configuration: Windows XP
Firefox 3.0.8

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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. 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