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 le nombre de lignes dans un cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 66
    Par défaut Compter le nombre de lignes dans un cellule
    Bonjour à tous.

    C'est sans doute une procédure très simple, mais je n'ai pas trouvé dans la junggle du forum.
    Voila, pour des raisons de mise en forme spécifique des cellules, j'ai besoin de connaitre le nombre de lignes affichées dans une cellule lorsque le texte inscrit est long.
    Quelqu'un a la solution?
    Merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Vous voulez dire que la cellule est formatée avec : Reenvoyer à la ligne automatiquement ?

    Si oui : regarder la hauteur de ligne lorsque le texte ne nécessite qu'une ligne (exemple 12.75) puis :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ht = 12.75
    htlgn = Rows(1).RowHeight
    nbl = htlgn/ht
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    lgn = ActiveCell.Row
    ht = 12.75
    htlgn = Rows(lgn).RowHeight
    nbl = htlgn/ht

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 66
    Par défaut
    Tiens oui, pourquoi pas...
    Votre solution peut faire l'affaire. Merci.
    Y a t-il un truc plus direct comme pour les textbox du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     nb_ligne = texbox1.LineCount
    ???
    merci

    d'autre part, la hauteur automatique ne marche pas s il y a des retours à la ligne.
    Donc vraiment, je suis à la recherche d'un code direct a priori

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Le saut de ligne dans une cellule est le caractère de contrôle chr(10)
    Il suffit de les compter.
    La méthode dada :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 1 to Len(Cells(NoLig, NoCol))
        Nb = Nb+ ((asc(mid(Cells(NoLig, NoCol),i,1)) = 10) *-1)
    Next
    nb = nb + 1'parce que la première ligne n'est pas comptée
    On doit bien avoir une fonction NbCar comme dans Word, dans Excel, ce serait plus simple. Tu regardes ça ?
    Bonne soirée

  5. #5
    Invité
    Invité(e)
    Par défaut
    A priori le saut de ligne dans une cellule n'est pas reconnu comme le caractère chr(10). J'ai eu des problèmes dans d'autres cas à ce sujet, mais s'il y a une solution je suis preneur.

    On doit bien avoir une fonction NbCar comme dans Word, dans Excel, ce serait plus simple. Tu regardes ça ?
    Oui bien sûr, la fonction Nbcar renvoie le nombre de caractères y compris les espaces et le caractère de passage à la ligne (même s'il n'est pas reconnu, en principe, comme Chr(10)), mais avec ce nombre de caractères comment retrouver le nombre de lignes en fonction de l'endroit où se trouve le caractère de passage à la ligne suivante ?

    Et cela peut se compliquer suivant que le format comprend le retour automatique à la ligne ou non.

    Et là encore, il est très possible que la solution existe, donc à suivre et je vais suivre.
    Dernière modification par ouskel'n'or ; 30/01/2009 à 20h09. Motif: Citation inutile

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok, Jacques_Jean, j'ai encore lu trop vite, chr(10) correspond au saut de ligne volontaire (Alt + Entrée)
    Je suis donc d'accord avec toi si ce saut de ligne est provoqué par l'option renvoi à la ligne automatique.

    Je nettoie

    Oui bien sûr, la fonction Nbcar renvoie le nombre de caractères
    Non, je pensais à autre chose (une fonction qui compte le nombre de fois qu'un caractère existe dans une chaîne) mais j'ai vérifié et apparemment ça n'existe pas

    Bonne soirée

Discussions similaires

  1. Compter le nombre de ligne dans un fichier text
    Par nekcorp dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/06/2018, 14h10
  2. [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
  3. [XL-2003] compter le nombre de lignes dans une cellule Excel
    Par facteur dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/11/2012, 14h01
  4. Compter le nombre de ligne dans un fichier
    Par amine_en_france dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 31/05/2007, 17h19
  5. Réponses: 2
    Dernier message: 02/03/2004, 19h38

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