Test si ligne masquée

treza88

XLDnaute Occasionnel
Bonjour a tous,

Je voudrais faire une formule qui me permetterait de faire un test sur une ligne pour savoir si cette ligne est masqué et si cette ligne est masqué de soustraire 1 a la valeur de cette ligne.

J'avais realisé ce code mais ça ne fonctionne pas ou alors j'exploite mal ma formule dans ma cellule.

Code:
Public Function masque()
If Rows.Hidden = 1 Then
Cells.Value = Cells.Value - 1
End If
End Function

Si quelqu'un peut me mettre sur la voie.

Merci d'avance
 
G

Guest

Guest
Re : Test si ligne masquée

Bonjour,

Pas tout compris ce que tu voulais faire mais,
voici une fonction qui renverra 0 ou -1 suivant l'état affiché/masqué de la ligne qui l'appelle.

A savoir qu'elle ne sera recalculé que lorsqu'une valeur de cellule sera changée ou en appuyant sur F9.

Une fonction ne peut pas modifier les propriétés des cellules, elle ne peut que renvoyer une valeur.

Application.ThisCell représente la cellule qui a appelé la fonction.

Code:
Function masque()
    Application.Volatile
    masque = Application.ThisCell.EntireRow.Hidden * 1
End Function

Exemple d'utilisation:

En A3: =SOMME(B3:E3)+masque() 'A3 ne doit pas faire partie de la somme --> référence circulaire.

A+
 

treza88

XLDnaute Occasionnel
Re : Test si ligne masquée

Merci Hasco

C'est tout a fait ce qu'il me falait, desolé de ne pas avoir été tres clair dans ma demande.

Parcontre si tu peux me developper le bout de code que tu m'as donner

Code:
Application.ThisCell.EntireRow.Hidden * 1

Car je ne comprend pas comment le resultat peut etre 0 ou -1 et pourquoi multiplier par 1, car en math multiplier par 1 donne le meme resultat qu'avant la multiplication.

Si ce n'est pas trop demander, je t'en remercie.
 

Discussions similaires

Réponses
7
Affichages
405

Statistiques des forums

Discussions
312 488
Messages
2 088 866
Membres
103 979
dernier inscrit
imed