Compter un nombre de caractères dans une cellule

Résolu/Fermé
Signaler
-
 vieuxray -
Bonjour a toutes et tous, Forum bonjour



Je suis sous Excel 2007 En VBA

J'ai dans la cellule A1 une phrase quelconque et svp je souhaiterai savoir comment compter et afficher dans la colonne F en F1 le nombre de caractère présent de la cellule A1 et ceci tout caractère confondu virgule espace point etc etc si possible bien sur.

Ex: A1 contient (Salut les gars.) Nombres de caractères égal réponse en F1=15 donc 2 espaces plus un point

idem pour les autre cellules A2 >> F2= ??
A3 >> F3=??

Merci de votre aide, une bonne après midi a vous
Cordialement Ray
A voir également:

8 réponses

Messages postés
1221
Date d'inscription
mercredi 5 juin 2013
Statut
Membre
Dernière intervention
27 décembre 2017
114
Bonjour

Essaye avec nb.car ou un truc de ce style cherche dans les formule il y a des explication.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
1281
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
7 mars 2016
819
Salut, je ne m'y connais pas du tout en VBA mais plutôt en Excel, pour déterminer le nombre de caractère d'une cellule, c'est la fonction NBCAR(), en espérant que çà t'ai aidé.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 188
Bonjour,

En VBA:

Range("F1").Value  = Len(Range("A1").Value)

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Salut Polux,

j'ai effectuer les modifications et voila bingo
ca fonctionne comme souhaitez

fait plusieurs essais c'est ok pour moi

je te remercie beaucoup de ton aide ainsi que de ta symphatie.

je te souhaite une agréable continuation

Encore merci, je clos le sujet

Bye Polux31, cdlt Ray
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Bonjour alexdu17200, Synerz, forum

J'ai suivi vos conseils, j'ai trouver sur la fonction NBCAR() mais je n'arrive pas a
coder afin d'obtenir le nombre de caractère présent de la cellule A1 et ceci tout caractère confondu virgule espace point etc etc

Merci a vous deux pour votre aide, c'est sympa, bonne jounée a vous

Cordialement Ray
Salut Polux31,

Merci pour ta réponse et pour ton code , ca fonctionne bien

Peut'on svp simplifier le code ci-dessous

je dois compter sur un nombre aléatoire de lignes de A1 a tout dépendra des textes
que j'écrirai

Merci pour l'aide apporter, c'est gentil

Bonne journée a toi

Cdlt Ray


Sub compte()

Range("F1").Value = Len(Range("A1").Value)
Range("F2").Value = Len(Range("A2").Value)
Range("F3").Value = Len(Range("A3").Value)
Range("F4").Value = Len(Range("A4").Value)


End Sub
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 188
Plusieurs façons de procéder :

Dim lig As Long

lig = 1

While Range("A" & lig).Value <> ""
     Range("F" & lig).Value = Len(Range("A" & lig).Value)
     lig = lig + 1
Wend


Ou bien

Dim lig As Long
Dim i As Long

lig = Range("A" & Rows.Count).End(xlUp).Row

For i = 1 to lig
     Range("F" & lig).Value = Len(Range("A" & lig).Value)
Next i
Re Polux31,

Merci pour la modif, j'ai opter pour celle ci-dessous

Mais un petit soucis

Ex : si j'écris en A5 (Raymond) il m'incris bien 7 (7 caractères trouvés) en F5

mais si j'efface (Raymond) 7 reste inscrit en F5

F5 devrait mettre 0 ou bien F5 vide

Peut'on remédier svp a ce soucis

Cdlt Ray




Sub compte()
Dim lig As Long

lig = 1

While Range("A" & lig).Value <> ""
Range("F" & lig).Value = Len(Range("A" & lig).Value)
lig = lig + 1
Wend

End Sub
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 188
Il y a un erreur dans mon code ...

Dans l'éditeur de la feuille concernée mettre :
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Column = 1 Then
        Module1.compte
    Else
        Exit Sub
    End If
End Sub


Et dans un module (ici Module1), mettre :
Option Explicit

Sub compte()
Dim lig As Long
Dim i As Long

lig = Range("A" & Rows.Count).End(xlUp).Row

For i = 1 To lig
    If Range("A" & i).Value = "" Then
        Range("F" & i).Value = 0
    Else
        Range("F" & i).Value = Len(Range("A" & i).Value)
    End If
Next i

End Sub
Re Polux31

Merci pour les codes, c'est cool

Serait'il possible svp de ne tester que la zone partant de A1:A26
et pas toute la colonne A

j'ai oublier de préciser au début de ma demande, désolé

Vu l'heure bon app et merci pour ton aide

Cdlt Raymond
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 188
Il faut supprimer:
Dim lig As Long
lig = Range("A" & Rows.Count).End(xlUp).Row


et changer
For i = 1 To lig
par
For i = 1 To 26


Merci bon app également.