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 :

Compter les lignes visibles d'une cellule fusionnée [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 633
    Par défaut Compter les lignes visibles d'une cellule fusionnée
    Bonjour,
    j'ai un tableau que l'utilisateur doit remplir selon les catégories ; ces noms de catégories sont des plages fusionnées (maximum 18 lignes), dont certaines lignes sont masquées.
    (on rend visible ligne par ligne selon les besoins avec un bouton, pour garder une esthétique à l'impression sur une page)
    mon problème est que je dois permettre de rendre visible une ligne seulement si les 18 ne sont pas encore visibles, donc je dois compter le nb de cellules visibles dans la cellule fusionnée

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Range("A" & ActiveCell.Row).SpecialCells(xlVisible).Count
    mais j'obtient le message "Dépassement de capacité", alors qu'il n'y a pas de variable

    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A" & ActiveCell).MergeArea.Rows.Count
    , mais j'obtiens systématiquement 18

    Est-ce quelqu'un peut m'aider, svp.
    merco

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Pour la cellule active

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ActiveCell.MergeArea.Rows.SpecialCells(xlCellTypeVisible).Count
    je te laisse adapter, tu ne donnes pas assez d'infos pour aller plus loin en l'état

  3. #3
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 633
    Par défaut
    Bonsoir Joe,
    je suis en train de rentrée, mais j'ai fait un simple essai, cela semble me convenir.
    Je tournais autour.
    Merci beaucoup, je confirme demain matin.
    Bonne soirée

  4. #4
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 633
    Par défaut
    Bonjour à tous,
    Voici le code qui fonctionne
    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
    Sub MasqLg()
    'Insertion de Lg vierge, dans la limite de 18
    'en réalité, ces lg existent, mais sont masquées
    Dim a As String
    Dim n As Integer
    a = ActiveCell.Address
    'je cpte le nb de lg visibles dans la cellule fusionnée, tant que je ne dépasse pas 18
    n = Range("A" & ActiveCell.Row).MergeArea.Rows.SpecialCells(xlVisible).Count
    'si n < 18 j'inserre une ligne masquée
    If n < 18 Then
        ActiveCell.Offset(1, 0).Rows.EntireRow.Hidden = False
    Else
        'sinon message
        Call MsgBox("Vous ne pouvez pas insérer de nouvelles lignes pour ce modèle." _
                    & vbCrLf & "" _
                    & vbCrLf & "Contactez votre responsable" _
                    , vbInformation, "OASIS")
    End If
    'on se remet prêt à saisir une nouvelle ligne
    Range(a).Offset(1, -1).Select
    End Sub
    Pour mieux comprendre l'objectif de cette procédure, j'ai fais une copie d'écran
    Nom : InsLgMasquée.jpg
Affichages : 494
Taille : 102,6 Ko
    Merci à tous

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

Discussions similaires

  1. [XL-2010] Compter le nombre de lignes dans une cellule fusionnée
    Par hipnobe dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/02/2015, 23h12
  2. [PDO] compter les lignes retournées par une requête SELECT
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/01/2015, 14h40
  3. Réponses: 0
    Dernier message: 21/11/2014, 17h21
  4. [XL-2010] Compter les lignes visibles
    Par FouJP dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/10/2013, 10h02
  5. [MySQL] Compter les lignes "NULL" d'une table
    Par Budy123 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/03/2010, 12h05

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