Bonjour,
Je travaille sur un classeur ou certaines colonnes et lignes doivent être masquées.
Je réutilise pour ça une macro de jp14 : https://www.excel-downloads.com/threads/masquer-certaines-lignes-suivant-conditions.131493/
Le code ci-dessous bloque (erreur 2023 ou erreur incompatibilité de type, souligné en jaune dans l'interface VB)
Pourriez-vous m'aider pour lever cette erreur et éventuellement de meilleure idées pour alléger ce code ?
PI :
- les lignes sont masquées si je trouve 15 dans la ligne en colonne F (correspond à la couleur du format de la ligne en colonne E)
- Les colonnes sont masquées si je trouve le texte X ou Y dans l'entête de colonne)
Merci pour votre aide 🙂
Je travaille sur un classeur ou certaines colonnes et lignes doivent être masquées.
Je réutilise pour ça une macro de jp14 : https://www.excel-downloads.com/threads/masquer-certaines-lignes-suivant-conditions.131493/
Le code ci-dessous bloque (erreur 2023 ou erreur incompatibilité de type, souligné en jaune dans l'interface VB)
Pourriez-vous m'aider pour lever cette erreur et éventuellement de meilleure idées pour alléger ce code ?
PI :
- les lignes sont masquées si je trouve 15 dans la ligne en colonne F (correspond à la couleur du format de la ligne en colonne E)
- Les colonnes sont masquées si je trouve le texte X ou Y dans l'entête de colonne)
Merci pour votre aide 🙂
Code:
Sub Masque_Lignes_et_Colonnes()
Dim Target As Range
Dim cellule As Range
'evite le flashage
Application.ScreenUpdating = False
Set Target = Sheets("14").Range("K7")
With Sheets("14")
.Rows("2:" & 200).EntireRow.Hidden = False
'La plage de cellule ou il faut chercher
For Each cellule In .Range("K7:K" & 200)
'on récupere la valeur de la cellule si cest 15 on masque
If cellule.Value = "15" Then
.Rows(cellule.Row).EntireRow.Hidden = True
End If
Next cellule
End With
'On repete la meme operation sur la deuxieme feuille (il y en aura plus)
Set Target = Sheets("50").Range("K7")
With Sheets("50")
.Rows("2:" & 200).EntireRow.Hidden = False
For Each cellule In .Range("K7:K" & 200)
If cellule.Value = "15" Then
.Rows(cellule.Row).EntireRow.Hidden = True
End If
Next cellule
End With
'Ensuite On Masque les colonnes de la premiere feuille
Set Target = Sheets("14").Range("G3")
With Sheets("14")
.Columns("A:IV").EntireColumn.Hidden = False
For Each cellule In .Range("G3:IV3" & 256)
'dans chaque il y a des colonnes avec toujours les deux mêmes en tetes à masquer, ce n'est plus un nombre comme pour les lignes a masquer mais du texte
If cellule.Value = "Volume reserve par l annonceur " Then
.Columns(cellule.Column).EntireColumn.Hidden = True
End If
If cellule.Value = "Part de voix indicative reservee par l annonceur" Then
.Columns(cellule.Column).EntireColumn.Hidden = True
End If
Next cellule
End With
'Masque les lignes de la deuxieme feuille, il y en a potentiellement plus
Set Target = Sheets("50").Range("G3")
With Sheets("50")
.Columns("A:IV").EntireColumn.Hidden = False
'
For Each cellule In .Range("G3:IV3" & 256)
'!!!!!! dans la ligne suivante la macro bloque toujours avec l'erreur 2023 ou 13 incompatibilité de type. Pourtant c'est le meme code que pour la premiere feuille !!!!
If cellule.Value = "Volume reserve par l annonceur " Then
.Columns(cellule.Column).EntireColumn.Hidden = True
End If
If cellule.Value = "Part de voix indicative reservee par l annonceur" Then
.Columns(cellule.Column).EntireColumn.Hidden = True
End If
Next cellule
End With
Application.ScreenUpdating = True
End Sub