Bonsoir à tous,
J'ai réussi à créer une macro qui permet de masquer les colonnes d'un tableau en fonction de la valeur prise par certaines cellules d'une feuille Excel.
A ce stade, tout roule, le problème vient ensuite , la première macro fonctionne.
Par la suite, je souhaite masquer les lignes qui ont des cellules vides à partir de la colonne E, et la, la macro qui suit ne fonctionne pas.
Le code de la première macro (qui fonctionne) :
Sub Worksheet_Calculate()
Worksheets("Effectif").Select
' On efface les masques précédents
Rows("1:100").Select
Selection.EntireRow.Hidden = False
Columns("C:M").Select
Selection.EntireColumn.Hidden = False
' Si le nom est = vide => masquer
If Range("E2").Value = "" Then
Columns("E:E").Select
Selection.EntireColumn.Hidden = True
End If
If Range("F2").Value = "" Then
Columns("F:F").Select
Selection.EntireColumn.Hidden = True
End If
If Range("G2").Value = "" Then
Columns("G:G").Select
Selection.EntireColumn.Hidden = True
End If
If Range("H2").Value = "" Then
Columns("H:H").Select
Selection.EntireColumn.Hidden = True
End If
If Range("I2").Value = "" Then
Columns("I:I").Select
Selection.EntireColumn.Hidden = True
End If
If Range("J2").Value = "" Then
Columns("J:J").Select
Selection.EntireColumn.Hidden = True
End If
If Range("K2").Value = "" Then
Columns("K:K").Select
Selection.EntireColumn.Hidden = True
End If
End Sub
Mon tableau commence à la ligne 6, donc la valeur initiale de ma variable part de ce chiffre, dans la macro suivante :
Worksheets("Effectif").Select
Dim ligne As Integer
For ligne = 6 To 100
If Cells(ligne, 5) = "" And Cells(ligne, 6) = "" And Cells(ligne, 7) = "" And Cells(ligne, 8) = "" And Cells(ligne, 9) = "" And Cells(ligne, 10) = "" And Cells(ligne, 11) = "" Then
Rows(ligne & ":" & ligne).EntireRow.Hidden = True
End If
Next
End Sub
Je précise que ces macros sont appelées à la suite du changement de valeur d'une cellule d'une feuille du classeur, voici le code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("D1").Address Then
Call Module1.Worksheet_Calculate
End If
Call Module1.Masquer_lignes
End Sub
Les colonnes du tableau sont bien masquées quand les cellules de critères sont remplies, mais en revanche les lignes vides ne disparaissent pas à la suite...
Je vous joins mon fichier :
Merci d'avance pour vos lumières!