Cacher des lignes en fonction de plusieurs valeurs

Bonjour tout le monde,

Je viens tout juste de débuter la programmation VBA dans Excel et j'aurais besoin de votre aide.

Je doit créer une macro qui cache les lignes, lorsque la valeur de la colonne D n'égale pas une série de valeurs (124 valeurs alphanumérique) présenté dans un autre onglet appelé feuille dans le range A6 à A129. De plus, la macro effectue la recherche sur une feuille qui contient environ 50 000 lignes

Pourriez-vous m'aidez svp, dois-je faire un array/un loop, etc ?

Voici le code que j'ai écrit , mais cela marche seulement pour une valeur, tandis que la fonction, doit être pour 124 valeurs présenté sur une autre feuille :

Sub Centre()
Application.ScreenUpdating = False

Dim BeginRow As String
Dim FinalRow As String

BeginRow = 10
FinalRow = Cells(Rows.Count, 1).End(xlUp).Row 'Le nombre de lignes changent de mois en mois c'est pourquoi je l'ai défini ainsi
ChkCol = 4

  For RowCnt = BeginRow To FinalRow

        If Cells(RowCnt, ChkCol).Value = 30010000 (Cela ne marche que pour cette valeur) Then
        Cells(RowCnt, ChkCol).EntireRow.Hidden = False
        Else
        Cells(RowCnt, ChkCol).EntireRow.Hidden = True
        End If
    Next RowCnt 

Columns("C").EntireColumn.Delete 'La colonne C doit être effacé à la fin de la fonction

End Sub

Merci à l'avance

Bonjour,

Voir fichier.

24volks-v1.xlsm (22.75 Ko)

Merci Jean-Éric ! J'aurais simplement une petit précision j'ai besoin que le fichier me cherche plusieurs valeurs. Par exemple 30010000, 30010001, 30010002 et etc...

Dois-je créer un array dans le type de :

Dim X ()
X = array (30010000, 30010001, 30010002)

J'aurais besoin de votre aide

Merci à l'avance

Bonjour,

Mise à jour macro :

Option Explicit
Option Private Module
Dim ws As Worksheet
Public Sub Centre()
Dim derLig As Long, _
    i As Long, _
    x, _
    c

    Application.ScreenUpdating = False
    Set ws = Worksheets("Feuil1")
   x = Array("30010000", "30010001", "30010002")
    With ws
        derLig = .Range("A" & Rows.Count).End(xlUp).Row
        For Each c In x
            For i = 10 To derLig Step 1
                If .Cells(i, 4) = c Then
                    .Rows(i).Hidden = False
                Else
                    .Rows(i).Hidden = True
                End If
            Next i
       Next c
        'Columns("C").Delete
    End With

    Set ws = Nothing

End Sub

Il serait préférable d'avoir une feuille distincte comportant les codes à rechercher

Rechercher des sujets similaires à "cacher lignes fonction valeurs"