Reconnaître une cellule avec formule "chiffrée" de calcul /formule complexe

Bonjour la communauté

Je souhaite pouvoir distinguer des cellules dans lesquelles il y a des formules ; j'ai pour cela créer une fonction "estformule" qui renvoie vrai ou faux" (voir fichier exemple). Jusque là, pas de souci.

L'objectif est d'apporter une modification à ce type de cellule (une sorte d'upgrade) ; pas de souci de ce côté là non plus.

Seulement, cet upgrade de formule ne doit pas être appliqué dans les cellules où la formule est "chiffrée", c'est à dire qui ne comprend qu'un calcul de nombres (pas de référence, pas de conditions...), du genre = 14+10 ou 14-5, 7*9...

Y a t il moyen de faire une distinction entre ces cellules avec formules basées uniquement sur des nombres réels, et des cellules avec des formules basées sur des références ?

Merci d'avance,

Bien à vous,



Bonsoir Philippe V.

Juste une info comme ça, la fonction ESTFORMULE() existe déjà sur Excel, inutile d'utiliser VBA pour ça

Ensuite pour ce qui est de votre problématique, il faut faire une petite moulinette je pense

Je regarde ça

Bonjour,

un essai par fonction personnalisée :

Function TestRef(cellule As Range)
If cellule.HasFormula Then
    If Val(Mid(cellule.Formula, 2)) = 0 Then
        TestRef = "Formule Avec Référence"
    Else
        TestRef = "Formule chiffrée"
    End If
Else
    TestRef = ""
End If
End Function

A+

Edit : Bonjour BrunoM45

Bonsoir AlgoPlus
Ca cadence dur en ce moment sur le forum "attention toute fois de ne pas confondre vitesse et précipitation"

Désolé pour toi, mais ta fonctionne ne marche pas

Essaye avec =(10*2)-5+(14*1,5) dans la cellule

En revanche celle-ci oui pour le moment

Function EstFormuleSimple(Cel As Range)
  Dim sForm As String
  Dim Ind As Integer
  ' Initlaiser le retour de la fonction par défaut
  EstFormuleSimple = True
  ' Récupérer la formule
  sForm = Cel.Formula2
  ' Pour chaque caractère sauf les signes et la virgule
  For Ind = 1 To Len(sForm)
    ' Si ce n'est pas un de ces caractères
    If InStr(1, "=+-/*.()", Mid(sForm, Ind, 1)) = 0 Then
      If Not IsNumeric(Mid(sForm, Ind, 1)) Then
        EstFormuleSimple = False
        Exit For
      End If
    End If
  Next Ind
End Function

A+

Bonsoir

Ben, il semble que ça ne marche pas

=(1+1)/2 renvoie : Formule Avec Référence

Je dois jongler avec deux versions d'excel, dont une (2010) qui ne disposait pas de la fonction estformule (rien n'est simple en ce bas monde...) ; voilà pourquoi j'ai du créer ma propre fonction.

Je vais regarder vos réponses avec attention

Rechercher des sujets similaires à "reconnaitre formule chiffree calcul complexe"