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

Macros et VBA Excel Discussion :

"Function" masquer lignes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 487
    Par défaut "Function" masquer lignes
    Bonjour à tous,

    je crois que ce que je cherche à faire est impossible, j'aurais besoin de votre confirmation.

    Je voudrais une fonction "HIDEROW()" qui aurait comme paramètre une référence de cellule et un booléen (pour dire caché ou pas)

    J'ai essayé ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function HideRow(objCell, boolHidden As Boolean)
     
        ActiveSheet.Range(Chr(34) & objCell & Chr(34)).EntireRow.Hidden = True
     
    End Function
    mais de mémoire il n'y a qu'une Sub qui peut faire ca, vrai ou faux ?

    d'avance merci pour votre réponse,

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 345
    Par défaut
    Bonjour,

    Une sub est une fonction qui ne renvoie rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function HideRow(objCell As String, boolHidden As Boolean)
        ActiveSheet.Range(objCell).EntireRow.Hidden = boolHidden
    End Function
     
    Sub Test()
        HideRow "A3", True
    End Sub
    Le résultat attendu est obtenu mais je ne vois pas l'interet

    ctac

  3. #3
    Membre éclairé Avatar de laloune
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2005
    Messages : 487
    Par défaut
    bonjour ctac et merci de ta réponse,

    oui ca fonctionne effectivement dans une sub, mais ce que je voudrais faire, c'est pouvoir appeler la fonction HideRow dans une cellule, càd écrire =HideRow(A1,VRAI)

    ainsi les utilisateurs peuvent utiliser la fonction telle quelle.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Une fonction appelée dans une cellule ne peut en aucun cas modifier quoi que ce soit dans un classeur.

    Seule la valeur renvoyée sera affichée dans la cellule appelante.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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