Bonjour,
Suite à diverses aides de personnes compétentes, j'ai pu réussir à cacher les cellules en fonction d'un nombre entrer dans une valeur.
J'ai modifié le code et intégrer dans mon tableur Excel.
Je rencontre cependant un problème, ma valeur est calculé en fonction d'un tableau croisée dynamique.
- Info :
Le tableau croisée dynamique sur la page : Tab croisée coût (le tableau de droite)
La page concernée : ESSAI Composants equipement (2)
En J32 j'ai un onglet déroulant (avec des doublons mais je dois peaufiner) qui me permet de sélectionner ce que je souhaite (Info issue du tableau croisée dynamique).
En L33, la valeur que je rentre manuellement et qui me cache mes lignes à partir de la ligne 33 jusqu'à 42 (inclus) => ce qui me permet de vérifier que le code VBA fonctionne bien
Quand j'insère ma formule (voir M33) en L33, que je valide, cela fait bien l'action une fois.
Mais ensuite lorsque je change ma valeur par le biais de l'onglet déroulant (J32), je n'ai plus d'action et reste figer sur l'action précédente.
- Détails formule M33 :
LIREDONNEESTABCROISDYNAMIQUE("Nbr Sous catégorie";'Tab croisée coût'!G$5;"Secteur";J32)
==> Elle me permet de sortir le nombre de sous ensemble dans chacune des catégories du TcD en fonction de l'onglet déroulant
- Le code :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With [L33]
If Intersect(Target, .Cells) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Rows(33).Resize(10).Hidden = True 'row correspond à la ligne et resize le total de nombre de ligne que l'on réduit
If .Value Then Rows(33).Resize(.Value).Hidden = False
End With
End Sub
Suivant mes recherches, je suppute que le problème vienne de cette valeur la dans mon code: If . Value , j'ai essayé de le remplacer par range("L33"), cell (12,33), activecelle mais sans succès.
sur cette zone de codage je ne suis vraiment pas à l'aise.
Merci pour cette fastidieuse lecture...
Je joins le fichier, et reste à dispo pour toute question complémentaire.
Amicalement,
Reyjak.
Suite à diverses aides de personnes compétentes, j'ai pu réussir à cacher les cellules en fonction d'un nombre entrer dans une valeur.
J'ai modifié le code et intégrer dans mon tableur Excel.
Je rencontre cependant un problème, ma valeur est calculé en fonction d'un tableau croisée dynamique.
- Info :
Le tableau croisée dynamique sur la page : Tab croisée coût (le tableau de droite)
La page concernée : ESSAI Composants equipement (2)
En J32 j'ai un onglet déroulant (avec des doublons mais je dois peaufiner) qui me permet de sélectionner ce que je souhaite (Info issue du tableau croisée dynamique).
En L33, la valeur que je rentre manuellement et qui me cache mes lignes à partir de la ligne 33 jusqu'à 42 (inclus) => ce qui me permet de vérifier que le code VBA fonctionne bien
Quand j'insère ma formule (voir M33) en L33, que je valide, cela fait bien l'action une fois.
Mais ensuite lorsque je change ma valeur par le biais de l'onglet déroulant (J32), je n'ai plus d'action et reste figer sur l'action précédente.
- Détails formule M33 :
LIREDONNEESTABCROISDYNAMIQUE("Nbr Sous catégorie";'Tab croisée coût'!G$5;"Secteur";J32)
==> Elle me permet de sortir le nombre de sous ensemble dans chacune des catégories du TcD en fonction de l'onglet déroulant
- Le code :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With [L33]
If Intersect(Target, .Cells) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Rows(33).Resize(10).Hidden = True 'row correspond à la ligne et resize le total de nombre de ligne que l'on réduit
If .Value Then Rows(33).Resize(.Value).Hidden = False
End With
End Sub
Suivant mes recherches, je suppute que le problème vienne de cette valeur la dans mon code: If . Value , j'ai essayé de le remplacer par range("L33"), cell (12,33), activecelle mais sans succès.
sur cette zone de codage je ne suis vraiment pas à l'aise.
Merci pour cette fastidieuse lecture...
Je joins le fichier, et reste à dispo pour toute question complémentaire.
Amicalement,
Reyjak.