Cacher des lignes sous conditions

Résolu/Fermé
celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015 - Modifié par celine31190 le 12/11/2015 à 10:04
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 13 nov. 2015 à 10:38
Bonjour,

Et merci d'avance pour votre aide.

J'aimerais avoir des lignes cacher sous certaines conditions tel que si ma cellule B19 est vide alors elle est masquée mais si c'est rempli alors elle est visible
De même pour mes lignes de 19 à 46 avec toujours mes cellules B"" qui sont la condition.

J'aimerais également que le code se fasse automatiquement a chaque fois que je clique sur l'onglet de ma feuille car les données sont saisies ailleurs.

Merci pour votre aide

3 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
12 nov. 2015 à 10:18
Bonjour,

code a mettre dans la fenetre VBA de la feuille:

Private Sub Worksheet_Activate()
    Dim x As Byte
    
    For x = 19 To 46
        If Cells(x, 2) = "" Then
            Rows(x).EntireRow.Hidden = True     'masque
        Else
            Rows(x).EntireRow.Hidden = False    'affiche
        End If
    Next x
End Sub
1
celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
12 nov. 2015 à 10:22
Bonjour, ça ne marche pas, ça ne fait rien du tout, peut être parce que mes cellules B19, B20 etc contiennent des formules ?
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
12 nov. 2015 à 10:24
Re,

j'ai fait ce code sur des cellules avec formules, montrez une des formules
0
celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
12 nov. 2015 à 10:24
='Ma feuille de calcul'!E7
0
celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
12 nov. 2015 à 10:24
Pour la cellule B19
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
12 nov. 2015 à 10:26
Re

essayez comme ceci:

=SI('Ma feuille de calcul'!E7<>"";'Ma feuille de calcul'!E7;"")
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
12 nov. 2015 à 17:23
Bonjour

Macro à copier coller dans le module feuille concernée
se déclenche lorsqu'on active la feuille

Option Explicit
'---------------------------
Private Sub Worksheet_Activate()
On Error Resume Next
Range("B19:B46").EntireRow.Hidden = False
Range("B19:B46").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End Sub

1
celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
12 nov. 2015 à 17:25
Merci celle là c'est dejà fait :) mais c'est gentil quand même
0
celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
12 nov. 2015 à 17:26
J'ai besoin de ça maintenant :
Quand G6 est vide ou =0, les lignes de 8 à 14 sont cachées
Quand G17 est vide ou =0, les lignes de 16 à 22 sont cachées
Quand G25 est vide ou =0, les lignes de 24 à 30 sont cachées
Quand G33 est vide ou =0, les lignes 32 à 38 sont cachées.

Sachant que le code de ma feuille est ça :

Private Sub Worksheet_Activate()
Dim x As Byte
For x = 43 To 162
If Cells(x, 2) = "" Or Cells(x, 2) = 0 Then
Rows(x).EntireRow.Hidden = True 'masque
Else
Rows(x).EntireRow.Hidden = False 'affiche
End If
Next x
End Sub


Merci d'avance
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
12 nov. 2015 à 17:27
Re,

Private Sub Worksheet_Activate()
    Dim x As Byte
    
    'Quand G6 est vide ou =0, les lignes de 8 à 14 sont cachées
    If Cells(6, 7) = "" Or Cells(6, 7) = 0 Then
        Rows(6).EntireRow.Hidden = True     'masque
    Else
        Rows(6).EntireRow.Hidden = False    'affiche
    End If
    'Quand G17 est vide ou =0, les lignes de 16 à 22 sont cachées
    If Cells(17, 7) = "" Or Cells(17, 7) = 0 Then
        Rows(17).EntireRow.Hidden = True     'masque
    Else
        Rows(17).EntireRow.Hidden = False    'affiche
    End If
    'Quand G25 est vide ou =0, les lignes de 24 à 30 sont cachées
    If Cells(25, 7) = "" Or Cells(25, 7) = 0 Then
        Rows(25).EntireRow.Hidden = True     'masque
    Else
        Rows(25).EntireRow.Hidden = False    'affiche
    End If
    'Quand G33 est vide ou =0, les lignes 32 à 38 sont cachées.
    If Cells(33, 7) = "" Or Cells(33, 7) = 0 Then
        Rows(33).EntireRow.Hidden = True     'masque
    Else
        Rows(33).EntireRow.Hidden = False    'affiche
    End If
    'B43 a B162
    For x = 43 To 162
        If Cells(x, 2) = "" Or Cells(x, 2) = 0 Then
            Rows(x).EntireRow.Hidden = True     'masque
        Else
            Rows(x).EntireRow.Hidden = False    'affiche
        End If
    Next x
End Sub
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié par f894009 le 12/11/2015 à 17:31
Bonjour michel_m
Range("B19:B46").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True


Marche pas avec des cellules avec formule!!!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
12 nov. 2015 à 17:32
Désolé je n'avais pas vu les précédents dialogues
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
13 nov. 2015 à 07:28
Bonjour,

Devais etre un dans le gaz hier soir, code corrige:

Private Sub Worksheet_Activate()
    Dim x As Byte
    
    'Quand G6 est vide ou =0, les lignes de 8 à 14 sont cachées
    If Cells(6, 7) = "" Or Cells(6, 7) = 0 Then
        Rows("8:14").EntireRow.Hidden = True     'masque
    Else
        Rows("8:14").EntireRow.Hidden = False    'affiche
    End If
    'Quand G17 est vide ou =0, les lignes de 16 à 22 sont cachées
    If Cells(17, 7) = "" Or Cells(17, 7) = 0 Then
        Rows("16:22").EntireRow.Hidden = True     'masque
    Else
        Rows("16:22").EntireRow.Hidden = False    'affiche
    End If
    'Quand G25 est vide ou =0, les lignes de 24 à 30 sont cachées
    If Cells(25, 7) = "" Or Cells(25, 7) = 0 Then
        Rows("24:30").EntireRow.Hidden = True     'masque
    Else
        Rows("24:30").EntireRow.Hidden = False    'affiche
    End If
    'Quand G33 est vide ou =0, les lignes 32 à 38 sont cachées.
    If Cells(33, 7) = "" Or Cells(33, 7) = 0 Then
        Rows("32:38").EntireRow.Hidden = True     'masque
    Else
        Rows("32:38").EntireRow.Hidden = False    'affiche
    End If
    'B43 a B162
    For x = 43 To 162
        If Cells(x, 2) = "" Or Cells(x, 2) = 0 Then
            Rows(x).EntireRow.Hidden = True     'masque
        Else
            Rows(x).EntireRow.Hidden = False    'affiche
        End If
    Next x
End Sub
0
celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
13 nov. 2015 à 09:03
Bonjour, F894009, j'ai essayé le code et ça me marque : Erreur compilation
Nom ambiguë : Worksheet_Activate
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
13 nov. 2015 à 09:22
Re,

Vous avez peut-etre deux fois la meme procedure ou ligne
Private Sub Worksheet_Activate()
0
celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
13 nov. 2015 à 09:42
Oui c'était bien ça, j'avais oublier de supprimer l'ancienne procédure, du coup ça marche, merci beaucoup pour votre aide
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > celine31190 Messages postés 21 Date d'inscription jeudi 12 novembre 2015 Statut Membre Dernière intervention 17 décembre 2015
13 nov. 2015 à 10:38
Re,

Ok, ca roule. Bonne continuation
0