Masquer des lignes en VBA

Bonsoir à tous, je vais tenter de vous exposer le plus clairement possible mon problème.

Je dispose d'un tableau comportant diverses données (amortissements). Dans la colonne F j'ai indiqué des dates, et dans la colonne G la Valeur Nette Comptable (VNC): quand la VNC est nulle, dans ma colonne G, je souhaiterais masquer les 20 lignes qui se trouvent en dessous. J'ai indiquer dans une cellule sur une autre feuille le numéro de la ligne à laquelle la VNC s'annule.

Ainsi, si la VNC s'annule en G9, la cellule sur mon autre feuille me donnera 9 comme résultat: je souhaite créer une macro qui masquerait les ligne 10 à 30.

Je souhaite procéder ainsi, car la VNC changeant souvent de valeur, elle peut s'annuler à différentes périodes, et donc changer de lignes.

Si quelqu'un pouvait me donner un bout de code pour cacher mes lignes.

Merci beaucoup. N'hésitez pas à me demander des descriptions plus complètes si besoin.

bonjour,

Cette macro cache les 20 lignes qui suivent la Cellule Active :

Sub Macro1()
ActiveCell.Offset(1).Resize(20).EntireRow.Hidden = True
End Sub

C'est à peu près tout ce que j'ai compris !

A+

datasubsystemdelayedcommand

A c'est pas mal çà: je vais voir si je peux l'appliquer à mon projet. Je vous tiens informés.

Merci à toi.

Bon voilà j'ai fait cette macro:

Sub cacher_les_cellules()

'on ôte la protection de la feuille pour exécuter la macro
'et redimensionner le tableau
    ActiveSheet.Unprotect

'on selectionne toute la feuille pour annuler les redimensions précédentes
    Cells.Select
    Selection.EntireRow.Hidden = False

'on cache les lignes en dessous de la VNC nulle
    Range("G" & Range("NLIGNE")).Offset(1).Resize(20).EntireRow.Hidden = True

'on place le curseur sur la cellule code de l'élément
    Range("B5").Select

'on protège de nouveau la feuille
    ActiveSheet.Protect

End Sub

Cependant un autre problème persiste; je ne peux exécuter cette macro sans entrée le mot de passe de la feuille.Existe t-il un moyen de déprotéger une feuille (la demande du mot de passe se ferait de manière interne à la macro)?

bonsoir,

il n'est pas utile de protéger ou déprotéger les feuilles pour exécuter une macro. iil suffit de coller cette macro dans le module thisWorkbook :

Private Sub Workbook_Open()
Dim i
For i = 1 To Worksheets.Count
Worksheets(i).Protect Password:="galopin", UserInterfaceOnly:=True
Next
End Sub

Nota : Dans cette macro, il est supposé que toutes les feuilles du classeur sont protégées avec le même mot de passe "galopin"

Ensuite les macros s'exécuteront sans pb sans qu'il soit nécessaire de protéger/déprotéger.

A+

J'ai donc mis ce morceau de code dans le workbook open:

Private Sub Workbook_Open()

Dim i

For i = 1 To Worksheets.Count

Worksheets(i).Protect Password:="cca", UserInterfaceOnly:=True

Next

'ouvre la macro de page d'acceuil

open_classeur

End Sub

Bien que toutes mes feuilles et tout mon classeur soit protéger par le mot de passe "cca", dès que je veux utiliser ma macro cacher_les_cellulesl il me demande automatiquement le mot de passe, alors que je souhaite que cette opération puisse être librement faite par l'utilisateur (permet de redimensionner un tableau)

Rechercher des sujets similaires à "masquer lignes vba"