Affichage uniquement des colonnes non vides

Voileux83 Messages postés 2 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,

Je suis débutant en VBA et je souhaite que via un tri d'une action dans la cellule A1 "Qui fait Quoi" ne s'affiche que les colonnes suivantes non vides.

Je remercie par avance toutes les personnes qui pourront m'apporter une aide

2 réponses

  1. Zoul67 Messages postés 2001 Statut Membre 149
     
    Bonjour,

    Au lieu de VBA, que penses-tu d'un TCD (tableau croisé dynamique) ?

    A+
    0
    1. Voileux83 Messages postés 2 Statut Membre
       
      Bonjour,
      Le fichier sera utilisé par plus de 400 personnes et certaines ne maîtrisent très peu Excel. Je voulais passer par VBA pour le permettre via un clic sur un bouton d'avoir la réponse à leur question.
      Je te remercie pour ta proposition et j'ai effectivement fait un TCD mais ça ne convient pas au personnes qui n'utilisent pas Excel dans leur quotidien.

      Merci pour ta réponse et pour l'intérêt que tu as porté à ma problématique
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    en vba se mettre sur la feuille concernée et faire Alt F11 pour accèder à l'éditeur coller ce code:

    Option Explicit
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim col As Integer
    Dim derniereLigne As Integer
    derniereLigne = Range("L" & Rows.Count).End(xlUp).Row 'a adapter la colonne
    If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
    If Target.Value = "Qui fait Quoi" Then
    For col = 2 To 12 'boucle sur les colonnes B à L a adapter
            'condition : si le nombre de valeurs des lignes 2 à dernière ligne de la colonne L est égal à zéro
            If Application.WorksheetFunction.CountA(Range(Cells(2, col), Cells(derniereLigne, col))) = 0 Then
                Columns(col).Hidden = True = Columns(col).Hidden = False ' 1er clic masque la colonne et second clic l'affiche
                 End If 'fin de la condition
        Next col 'prochaine colonne de la boucle
        End If
        End If
    End Sub
    


    Voilà
    0