Macro pour cacher des lignes en fonction du résultat

Benjy51190

XLDnaute Nouveau
Bonjour à tous et merci de lire mon sujet;

Je cherche comment effectuer une macro, qui me permettrai de cacher des lignes selon le résultat obtenu.

- Pour être plus précis, mes lignes vont de 6 à 1002
- le résultat de chaque ligne est dans la colonne X ( et correspond à chaque fois au numéro de la ligne)

Je souhaiterai que lorsque le résultat est supérieur ou égale à 18, ces lignes en question soit cachées.

Il me faudrait aussi une macro qui me permettrai d'annuler cette macro précédente, au cas ou j'ai besoin de faire apparaitre ces fameuses lignes.

Je vous remercie beaucoup pour votre aide.
Bonne soirée
 

Lone-wolf

XLDnaute Barbatruc
Bonjour eriiiic :), benjy :)

Il n'y a que des zéros dans la colonne. :rolleyes: Et tu aurais pu faire juste un copié-collé d'une feuille dans un nouveau classeur. Sinon, d'après ce que j'ai compris, à mettre dans le module de ThisWorkbook

VB:
Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim lig As Long

    Application.EnableEvents = False
    Application.ScreenUpdating = False

    If Not Intersect(Target, Range("x6:x65536")) Is Nothing And Target.Count = 1 Then

        With ActiveSheet
            For lig = 6 To .Cells(Rows.Count, "X").End(xlUp).Row
                If .Cells(lig, "X").Value >= 18 Then .Rows(lig).Hidden = True
            Next lig
        End With

    End If
    Application.EnableEvents = True
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim lig As Long

    Application.ScreenUpdating = False

    If Not Intersect(Target, Range("z6:z65536")) Is Nothing And Target.Count = 1 Then

        With ActiveSheet
            For lig = 6 To .Cells(Rows.Count, "X").End(xlUp).Row
                If .Rows(lig).Hidden = True Then .Rows(lig).Hidden = False
            Next lig
        End With
    End If
End Sub
 
Dernière édition:

Benjy51190

XLDnaute Nouveau
Bonjour et merci pour votre travail.
cela fait plusieurs jours que j'essai, mais je ne suis surement pas assez familiarisé avec le module VBA: j'ai "l'habitude" de faire de simple macro en utilisant le bouton enregistrement, et là, je n'arrive pas à utiliser ce que vous m'avez envoyé.

Est ce possible que vous l'appliquiez à la première page de mon fichier? j'imagine qu'après, j'arriverai à m'en sortir pour lue faire sur les feuilles suivantes.

Merci par avance pour votre aide

Bonjour eriiiic :), benjy :)

Il n'y a que des zéros dans la colonne. :rolleyes: Et tu aurais pu faire juste un copié-collé d'une feuille dans un nouveau classeur. Sinon, d'après ce que j'ai compris, à mettre dans le module de ThisWorkbook

VB:
Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim lig As Long

    Application.EnableEvents = False
    Application.ScreenUpdating = False

    If Not Intersect(Target, Range("x6:x65536")) Is Nothing And Target.Count = 1 Then

        With ActiveSheet
            For lig = 6 To .Cells(Rows.Count, "X").End(xlUp).Row
                If .Cells(lig, "X").Value >= 18 Then .Rows(lig).Hidden = True
            Next lig
        End With

    End If
    Application.EnableEvents = True
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Dim lig As Long

    Application.ScreenUpdating = False

    If Not Intersect(Target, Range("z6:z65536")) Is Nothing And Target.Count = 1 Then

        With ActiveSheet
            For lig = 6 To .Cells(Rows.Count, "X").End(xlUp).Row
                If .Rows(lig).Hidden = True Then .Rows(lig).Hidden = False
            Next lig
        End With
    End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 046
Messages
2 084 840
Membres
102 686
dernier inscrit
Franck6950