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

3 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. 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
  3. Septimel
     
    Merci beaucoup, j'ai compris le principe :)
    0