Masquer des lignes et colonnes en fonction d'une valeur d'un menu déroulant

Je pense que je dois être fatigué car j'ai repris tous vos posts pour m'assurer de ne pas m'être trompé mais ça ne fonctionne pas.

Ok. Votre fichier en retour

Je viens de trouver mon erreur, j'avais recommencé toute la procédure pour ne rien oublier sauf que j'avais un fichier avec une colonne vide en B qui décalait toutes vos formules.

Vous allez peut être me trouver pénible et je me suis surement mal exprimé mais si vous prenez l'exemple avec AMPONVILLE j'aurais souhaité voir uniquement les colonnes C, E, M, O, AB, AD... celles où il y a un chiffre sur la ligne 4.

Merci encore pour tout le travail effectué, vous m'avez été d'une aide immense.

Romain

Vous allez peut être me trouver pénible et je me suis surement mal exprimé mais si vous prenez l'exemple avec AMPONVILLE j'aurais souhaité voir uniquement les colonnes C, E, M, O, AB, AD... celles où il y a un chiffre sur la ligne 4

Ah et vous ne voulez pas D, F, N .... Je pensais que vous vouliez le tableau complet sur chaque garage. Là je dois revoir tout alors

En effet je ne veux pas B, D, F... mais uniquement les colonnes avec un chiffre sur la ligne de la ville sélectionnée.

Une fois la bonne formule trouvée je ne devrait voir que 16 colonnes, 2 par garage.

Et la colonne juste avant chaque tableau vous devez la voir ou pas ? (donc celle où le nom est mis en vertical)

Non plus.

Ok. Alors remplacez tout le code par ceci

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

If Not Intersect(Target, Range("Choix_ville")) Is Nothing Then
    If Target = vbNullString Then
        With Cells
            .EntireRow.Hidden = False
            .EntireColumn.Hidden = False
        End With
        Exit Sub
    End If

    Dim cel As Range, plage As Range
    Dim dcol As Integer, i As Integer, lig As Integer

    dcol = ActiveSheet.UsedRange.Columns.Count
    lig = WorksheetFunction.Match(Target.Value, Range("Villes"))
    Set plage = Range(Cells(lig, 2), Cells(lig, dcol))

    'masquer affiche colonne
    For Each cel In plage
        If cel.Value > 0 Then
            cel.EntireColumn.Hidden = False
        Else: cel.EntireColumn.Hidden = True
        End If
    Next cel

    'masquer afficher villes
    For Each cel In Range("Villes")
        If cel.Row = Target.Row Then Exit Sub
        If cel <> Target.Value Then
            Rows(cel.Row).Hidden = True
        Else: Rows(cel.Row).Hidden = False
        End If
    Next cel
    End If
End Sub

Merci infiniment, tout fonctionne parfaitement.

Je ne veux pas abuser de votre temps mais à l'utilisation j'ai un cas particulier dans le cas où A17 est vide.

Actuellement il m'affiche tout alors que je voudrais garder le même principe d'affichage mais pour l'ensemble des garages.

Chaque bloc garage se compose de 5 colonnes (1 verticale / 1 véhicule / 1 status / 1 véhicule / 1 status).

Si je ne sélectionne aucune ville j'aimerai n'avoir que les colonnes 2 et 4 de chaque bloc, simplement les véhicules.

L'avantage de cette option est d'avoir une vue plus générale des véhicules disponibles.

Bonjour

Je ne veux pas abuser de votre temps mais à l'utilisation j'ai un cas particulier dans le cas où A17 est vide.....
Si je ne sélectionne aucune ville j'aimerai n'avoir que les colonnes 2 et 4 de chaque bloc, simplement les véhicules.

Ok là je dois revoir tout le code
Mais avant une question : si vous voulez afficher toute la feuille vous le ferez donc manuellement ?

Bonjour Dan,

Je pensais à 2 solutions :

- Ajouter "Toutes" dans le menu déroulant mais ça fait une exception qui complique surement le code.

- Mettre une cellule bouton différente qui permet de faire que cet affichage spécifique.

Qu'en pensez vous ?

J'ai fait la manipulation en manuel pour masquer les cellules mais voilà comment je souhaite voir les choses de base si je ne sélectionne aucune ville.

Dans l'idée par rapport à mon post précédent :

- Si je sélectionne une ville dans le menu déroulant ça affiche les 8 garages comme le code le prévoit

- Si je ne sélectionne rien je souhaite voir l'affichage comme dans le fichier joint.

PS : Dans l'onglet "Gestion des moyens" vous avez des cases boutons dans les colonnes C à G, pourquoi ne pas faire la même chose pour obtenir la sélection vide de base ?

Je ne pense pas qu'il y eut besoin de remettre votre fichier.

L'option Toutes est intéressante mais dans mon idée cela afficherait toutes les colonnes et lignes. Donc aucun masquage et cela vous permet de travailler sur votre feuille dans toutes les cellules. C'était la raison de mon post précédent

PS : Dans l'onglet "Gestion des moyens" vous avez des cases boutons dans les colonnes C à G, pourquoi ne pas faire la même chose pour obtenir la sélection vide de base ?

Oui cela peut se faire mais vous allez cliquer où dans la feuille ?.
Cela ne me semble pas intuitif. La je viens de voir sur votre feuille Gestion et c'est grâce à ce que vous m'expliquer que je découvre la fonctionnalité

Si j'ai besoin de travailler sur les cellules masquées du fichier c'est pour toucher à des paramètres et dans ce cas j'affiche les cellules manuellement.

Je n’aurais pas pensé vous faire découvrir une nouvelle fonctionnalité, une corde de plus à votre arc.

Sinon vous pouvez mettre l'action du "Toutes" en cellule A36 par exemple, elle sera toujours visible.

Sinon vous pouvez mettre l'action du "Toutes" en cellule A36 par exemple, elle sera toujours visible.

Ah ok. Là ce n'est pas la même chose. Il faut un nouveau code spécifique
Et vous voulez que cela fonctionne comment au niveau A36 ? Sur click ?

Autre exemple sur le tableau BRAY: si rien en A17, on masque bien les colonnes S et U et on laisse visible les colonnes Q, R et T . Correct ?

Oui par exemple puisque le choix est unique, c'est comme si je fais un reset pour revenir à l'affichage de base sauf que mon affichage de base masque en réalité la majorité des cellules.

Est-ce que l'on doit aussi cacher les lignes de villes A2 à A15 si la cellule A17 est vide ?
Désolé de toutes mes questions qui peuvent vous paraitre étonnantes mais je dois ré-analyser le tout

Désolé j'ai du m'absenter.

Oui les lignes supérieures doivent être masquées.

Oui les lignes supérieurs doivent être masquées

Ok mais c'est différent de votre dernier fichier où vous me montrer ceci quand A17 est vide

image

avec le code que je vous ai préparé on aurait ceci

image

Ah oui pardon les lignes doivent bien être cachées.

Par contre vous affichez les colonnes avec un décalage dans votre code.

Rechercher des sujets similaires à "masquer lignes colonnes fonction valeur menu deroulant"