Cherche macro VBA pour masquer colonnes et lignes

Bonjour à tous,

Voilà mon souci :

J'ai un tableau de données. Les cellules de ce tableau sont vides ou pleines (format numérique ou texte).

Certaines de ces cellules ont un fond de couleur rouge (mis en rouge manuellement).

J'aimerai créer une macro qui permet de masquer lorsqu'on l'active les lignes ou les colonnes de ce tableau qui ne contiennent pas de cellules de couleur rouge.

Pour être plus explicite, vous trouverez en pièce jointe un fichier Excel reprenant mes indications.

Le tableau initial est dans l'onglet "initial" et le résultat que devrait produire la macro se trouve dans l'onglet "final".

NB : J'utilise Excel 2010 version famille et étudiant

Je vous remercie infiniment par avance si vous avez des pistes.

Très cordialement,

Sinokisme

J'ai essayé quelque chose comme ça

Sub masque_vide()
If Range("A2:G2").Font.ColorIndex <> 3 Then
EntireRow.Hidden = True
ElseIf Range("A3:G3").Font.ColorIndex <> 3 Then
EntireRow.Hidden = True
ElseIf Range("A4:G4").Font.ColorIndex <> 3 Then
EntireRow.Hidden = True
ElseIf Range("A5:G5").Font.ColorIndex <> 3 Then
EntireRow.Hidden = True
Else
Exit Sub
End If
End Sub

Mais ça ne marche pas. Je suis débutant sur VBA. Si vous avez des idées je vous remercie beaucoup.

Bonsoir

Voir Fichier

Amicalement

Nad

Whaow super Nad. C'est exactement ce que je voulais.

Merci à toi

Bonsoir à tous

J'aimerais perfectionner un peu la macro de NAD.

Pour rappel, la macro de NAD est la suivante :

Function NbCoul(Zone As Range, Couleur As String)

Application.Volatile True

Dim c As Range

For Each c In Zone

If c.Interior.ColorIndex = Couleur Then NbCoul = NbCoul + 1

Next c

End Function

Sub MasqueNonRouge()

Application.ScreenUpdating = False

Dim dlg As Integer, dcl As Integer

Dim x As Integer, i As Integer, j As Integer

dlg = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row

dcl = Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column

For i = dlg To 2 Step -1

x = NbCoul(Range(Cells(i, 1), Cells(i, dcl)), 3)

If x = 0 Then Rows(i).Hidden = True

Next i

For j = dcl To 1 Step -1

x = NbCoul(Range(Cells(2, j), Cells(dlg, j)), 3)

If x = 0 Then Columns(j).Hidden = True

Next j

End Sub

Sub AfficheTout()

Application.ScreenUpdating = False

Cells.EntireRow.Hidden = False

Cells.EntireColumn.Hidden = False

End Sub

Cette macro me permet de masquer les lignes et les colonnes de mon tableau qui ne contiennent pas de cellules rouges.

Petite explication pour comprendre la suite : par figer j'entends le fait pour une colonne ou une ligne de rester visible, même si elle ne contient pas de cellules rouges.

Je souhaiterais obtenir exactement le même résultat, mais en plus de figer la ligne des intitulés de chaque colonne (dans le nouveau fichier excel ci-joint il s'agit de la ligne 5), je voudrais également figer certaines colonnes essentielles à la lecture de mon tableau.

Dans le fichier ci-joint les colonnes à figer sont les colonnes C,D,E et F.

Pour être plus clair, je vous joins un fichier excel avec un onglet initial et un onglet final (objectif de la macro une fois activée).

Si vous avez des pistes, je suis preneur.

Bonne soirée à tous.

Très cordialement,

Sinokisme

Bonsoir

Voir fichier

Amicalement

Nad

Super merci beaucoup NAD

Rechercher des sujets similaires à "cherche macro vba masquer colonnes lignes"