Comment différencier une cellule qui ne contient rien d'une cellule qui renvoie ""?

micky01

XLDnaute Occasionnel
Bonjour,
J'ai créé une macros qui protège ou déprotège les cellules suivant si elles sont vides ou qu'elles contiennent une information.

Quand je dis Si A1 <> "" Alors bloquer la cellule, ll ne la protège pas si la formule qu'elle contient renvoi "".
Comment dire "si une cellule contient quelque chose (meme si c'est une formule qui renvoie "")... si elle ne contient rien (ni formule, ni texte...)...

Merci de vos lumières

A plus
 

Jocelyn

XLDnaute Barbatruc
Re : Comment différencier une cellule qui ne contient rien d'une cellule qui renvoie

Bonjour le Forum,
Bonjour micky01,

une cellule qui contient un renvoi de formule "" n'est pas considérée comme vide par excel

il faut tester avec =si(estvide(A1)=vrais;......)

Cordialement
 

Dull

XLDnaute Barbatruc
Re : Comment différencier une cellule qui ne contient rien d'une cellule qui renvoie

Salut Micky01, Jocelyn:), Pierre:), le Forum

Juste pour saluer mes amis :) et te proposer cela: valable que si formule en A1 ET résultat de la Formule est ""

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [A1]) Is Nothing Then
If Range("A1").HasFormula = True And Range("A1") = "" Then MsgBox "Formule en " & Target.Address & " = a vide"
End If
End Sub

A tester

Bonne Journée
 

Pièces jointes

  • Formule Micky01.xlsm
    15 KB · Affichages: 52
Dernière édition:

job75

XLDnaute Barbatruc
Re : Comment différencier une cellule qui ne contient rien d'une cellule qui renvoie

Bonjour Micky01, Jocelyn, Pierre, Dull :)

Pour faire bon poids, et si Micky n'est pas satisfait c'est à désespérer :

Code:
Sub Test()
Dim cel As Range, ad As String
Set cel = ActiveCell 'à adapter éventuellement
ad = cel.Address(0, 0)
If IsEmpty(cel) Then
  MsgBox ad & " est vide..."
ElseIf cel.HasFormula Then
  MsgBox ad & " contient une formule renvoyant " & _
    IIf(cel.Text = "", "un texte vide...", "une valeur...")
Else
  MsgBox ad & " contient une constante " & _
    IIf(cel.Text = "", "de texte vide...", "...")
End If
End Sub
A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane