IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Afficher/masquer des colonnes : VBA vs Claire


Sujet :

VBA Access

  1. #1
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut Afficher/masquer des colonnes : VBA vs Claire
    Bonjour,

    j'ai un formulaire avec un sous-formulaire en mode Feuille de données.

    dans mon formulaire, j'ai des cases à cocher.

    je voudrais qu'en fonction des cases cochées ça me masque / affiche une colonne du sous formulaire.

    donc, j'ai fait une jolie petite fonction, et pour éviter les répétitions, j'ai fait un select case et tout et tout.

    bon, je vous montre, c'est le plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    'pour appeler la fonction: après la coche/décoche de ma case:
    Private Sub cgpr_AfterUpdate()
    Call Display_Hide_Columns(Me.cgpr.name)
    End Sub
     
    'la fonction (incomplète)
    Function Display_Hide_Columns(name As String)
    Select Case (name)
        Case "cgpr": Call disp_hide("Modifiable44")
    '....
     
    'l'autre fonction
    Function disp_hide(column As String)
    Dim str As String
     
    str = "[Forms]![f_liste_uo]![F_Liste_UO_sf].Form." & column & ".ColumnHidden ="
     
    If str = True Then
        str = False
    Else
        str = True
    End If
     
    End Function
    bon voilà, en fait, je voulais dans ma 2e fonction stocker l'adresse de mon sous formulaire, concaténer le nom de la colonne que je trouve avec la fonction précédente (dans mon select), puis après concaténer avec la propriété ColumnHidden.

    comme ça après j'avais juste à tester le true ou le false.

    ....sauf que VBA n'a pas l'air d'apprécier.
    c'était astucieux pourtant non ?

    .......bon, c'est pas le tout de m'envoyer des fleurs, mais.... vous avez une solution pour faire quelque chose de clair et joli ?

    (bon, sinon je peux le faire sans fonction ni rien mais ça sera pas joli du tout, et puis si jamais mon formulaire change de nom, il ne sera pas facile de mettre le code à jour....)
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Bjr,

    A tester mais ça doit être à peu près ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function disp_hide(column As String)
    With [Forms]![f_liste_uo]![F_Liste_UO_sf].Form.controls(column)
        .ColumnHidden = Not .ColumnHidden 
    End With
    End Function

  3. #3
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    Super, ça fonctionne !

    Par contre, je ne comprends pas comment fonctionne ce code.
    tu pourrais m'expliquer stp ?
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function disp_hide(column As String)
    ' Avec le With on évite la répétition du [Forms]!......
    With [Forms]![f_liste_uo]![F_Liste_UO_sf].Form.controls(column)
        ' On inverse la valeur 
        ' Si ColumnHidden vaut Vrai, on le change en Not Vrai donc Faux
        ' Si ColumnHidden vaut Faux, on le change en Not Faux donc Vrai
        .ColumnHidden = Not .ColumnHidden 
    End With
    End Function

  5. #5
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 337
    Points : 188
    Points
    188
    Par défaut
    OK merci t'es un as !

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [LibreOffice][Tableur] Afficher/Masquer des colonnes
    Par elodiemart dans le forum OpenOffice & LibreOffice
    Réponses: 11
    Dernier message: 19/07/2013, 20h32
  2. [JTable] Afficher / Masquer des colonnes
    Par Dark_TeToN dans le forum Composants
    Réponses: 9
    Dernier message: 15/11/2010, 15h31
  3. afficher/masquer des colonnes nommées
    Par chouchouboy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/10/2010, 13h17
  4. Afficher/masquer des colonnes d'un tableau
    Par fre3d0m dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/07/2009, 19h09
  5. Afficher / masquer des colonnes
    Par didier.aucun dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/04/2008, 23h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo