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 caracteres visibles dans une cellule [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Compter le nombre de caracteres visibles dans une cellule
    Bonjour à tous,

    Dans le cadre d'un reporting, j'extraie des textes d'une base de données, que je dois retraiter sur excel.
    J'arrive pour chaque cellule à enlever les espaces indésirables, les retours à la ligne (Chr(10) & Chr(13))... Dans mon reporting, que je suis plus tard amené à imprimer, les cellules contenant ces textes mesurent 60 pixels de haut (correspondant à 3 lignes de texte), et 420 de large. Je sais qu'à l'impression mon texte sera tronqué, mais c'est un point surlequel je me suis mis d'accord avec mon boss.
    Je pourrais ne rien faire, et laisser le surplus de texte, mais ca alourdit considérablement mon fichier. Je souhaite donc tronquer le texte, afin que seules les 3 premières lignes soient visibles.

    Existe-t'il une fonction qui ne compte que les caractères visibles dans une cellule? Ainsi je pourrais faire left(MyText, x) où x serait la réponse à ma question.

    Merci d'avance,

    Guillaume

  2. #2
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour, peut-être existe-il une réponse codée à votre interrogation? Je ne l'a connait pas. Toujours est-il que confronté jadis à ce problème, je l'ai résolu en 30 secondes. j'ai entré une phrase longue et j'ai compté le nombre de caractères et j'ai eu la réponse .
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci Transitoire pour ce début de réponse. J'ai en effet calculé que sur une cellule de cette taille, je peux rentrer 264 "i". Je pourrais en effet faire ainsi, mais je voulais faire quelque chose de plus propre, et apprendre quelque chose de nouveau par la même occasion.

    Depuis la rédaction de mon premier post, je me suis demandé s'il n'était pas possible de prendre le problème à l'envers: c-à-d, la macro analyse la superficie/aire de la cellule et calcule le nombre maximal de caractères visibles... Je continue mes recherches de mon côté, jusqu'à ce qu'un internaute puisse m'aider...

  4. #4
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Re bonjour, le problème est que suivant la Font, la taille ETC il n'est pas impossible que les dimensions changent et donc le nombre de lettres possibles. Si vous ne mettez que des "I", vous risquez d'avoir des mauvaises surprises avec par exemple un W surtout majuscule.
    Enfin moi ce que j'en dit???
    Mais il est possible que les Génies qui peuplent ce forum ait une réponse adéquate à la question que vous vous et nous posez.

    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Si tu utilises une police non proportionnelle (par ex Courrier New) le nombre de caractères dans la cellule sera fixe (indépendant des caractères)
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Utiliser une police à largeur fixe présente l'avantage de mieux contrôler la taille d'un texte.
    Mais elle prend globalement plus de place qu'une police à largeur variable.

    Autre écueil : Excel est loin d'être un WYSIWYG (contrairement à Word, par exemple).
    Donc, ce qui, à l'écran, donne l'impression de tenir en une seule ligne pourrait en faire deux (ou déborder sur la cellule suivante ou être tronqué) à l'impression.

    Avec une police de largueur fixe, on peut assez simplement connaitre le nombre de caractères limite en faisant des essais.
    Avec une police proportionnelle, c'est quasiment impossible.

    Citation Envoyé par Patrice740 Voir le message
    Si tu utilises une police non proportionnelle (par ex Courrier New)
    Courrier New ou autre : https://www.dafont.com/fr/theme.php?...&fpp=100&af=on
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour à tous,

    crée-toi un textbox sur la feuille de même caractéristique Font et taille que ta cellule et SelectionMargin=False.

    Puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub xlig()
        Worksheets("Feuil1").TextBox1.Activate
        TextBox1.Text = [B2].Value
        If TextBox1.LineCount > 3 Then
            TextBox1.CurLine = 3
            [C2].Value = Left([B2], TextBox1.SelStart)
        End If
    End Sub
    Je colle dans une autre cellule pour les tests.
    eric

  8. #8
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous,
    Citation Envoyé par Guillaume_83 Voir le message
    ...Dans le cadre d'un reporting, j'extraie des textes d'une base de données, que je dois retraiter sur excel.
    Il y a quelque chose que je comprend pas pourquoi tu retravailles sur Excel n'utilises pas ACCESS ! il est fait pour ça et faire des reportings il sait le faire très facilement

    De plus tu n'aurais plus de problèmes de lourdeur et de tronquage
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Regarde ici :

    https://www.ozgrid.com/forum/forum/h...idth-in-points

    Je pense que c'est ce que tu cherches.

    La méthode par troncation à X (ex : 260) caractères systématiquement est sans doute la plus simple à mettre en œuvre.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci à tous pour vos contributions, qui m'ont permis de trouver une solution et de repenser la façon dont je dois travailler à l'avenir.
    Ça fait toujours du bien d'apprendre qqch de nouveau!

    Guillaume

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/09/2019, 22h36
  2. [AC-2003] Compter le nombre d'éléments sélectionnés dans une zone de liste
    Par sinifroth dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/07/2009, 11h35
  3. [MySQL] compter le nombre d'un mot dans une table sql
    Par Akramweb dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/04/2008, 16h20
  4. Réponses: 28
    Dernier message: 11/10/2006, 22h36
  5. Compter le nombre d'enregistrement supprimer dans une jsp
    Par DarkWark dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/05/2006, 11h36

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