Macro Excel - Masquer certaines lignes

Résolu
cdlmars5 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
cdlmars5 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous

je suis novice en macro excel et j'ai un soucis. En fait, j'ai un metré et j'aimerais masquer/afficher certaines lignes.

Le metré comportant presque 1000 lignes, je n'ai pas envie de déclarer chaque ligne à masquer en fonction de sa valeur et je me suis dit que créer une colonne A avec une fonction en formule pour les lignes qui m'intéressent devraient fonctionner.

Seulement, ça ne fonctionne pas, et je ne vois pas pourquoi :S.

Public Function Masquage(ByVal Ligne As Integer)
 
Range("A" & Ligne).EntireRow.Hidden = True
MsgBox Ligne

End Function


et dans les celulles en colonne A, je mets

=SI(G398=0;Masquage(LIGNE());"")


le problème étant qu'en cellule A, il me met un résultat de 0 (car G398 est =0).

Il affiche correctement le n° de la ligne dans la MsgBox. Mais ne masque pas la cellule.

2 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour

    je crois que ton problème vient du fait que l'objet d'une "function" est de renvoyer un résultat, elle ne peut pas modifier l'aspect de la feuille
    il te faudra créer une "sub" et dététerminer quel évènement va déclencher son exécution
    un exemple à activer avec un raccourci clavier masque la ligne de la cellule active

    Public Sub masquer()   
    With ActiveCell   
      .EntireRow.Hidden = True   
    End With   
    End Sub

    bonne suite
    2
  2. cdlmars5 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
     
    Si ça vient de là, je n'aurais pu le trouver.

    Un grand merci
    0