Macro Excel - Masquer certaines lignes

Résolu/Fermé
cdlmars5 Messages postés 2 Date d'inscription mardi 14 février 2012 Statut Membre Dernière intervention 14 février 2012 - 14 févr. 2012 à 10:02
cdlmars5 Messages postés 2 Date d'inscription mardi 14 février 2012 Statut Membre Dernière intervention 14 février 2012 - 14 févr. 2012 à 14:24
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.



A voir également:

2 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 14/02/2012 à 11:41
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
cdlmars5 Messages postés 2 Date d'inscription mardi 14 février 2012 Statut Membre Dernière intervention 14 février 2012
14 févr. 2012 à 14:24
Si ça vient de là, je n'aurais pu le trouver.

Un grand merci
0