compter le nombre de caractères dans une cellule à plusieurs lignes

Zad

XLDnaute Nouveau
Bonjour,

J'ai des cellules Excel qui contiennent 5 lignes avec un retour chariot à la fin de chaque ligne, je voudrais une fonction qui me colorie ma cellule en rouge si au moins une de ces lignes dépasse 25 caractères.

J'ai essayé avec la formule NBCAR mais elle prend en compte tout le contenu de la cellule.

Quelqu'un a une idée ? :)
 

Staple1600

XLDnaute Barbatruc
Re : compter le nombre de caractères dans une cellule à plusieurs lignes

Bonsoir


Une façon de faire (par macro)

Code:
Sub a()
With ActiveCell
    .Interior.ColorIndex = -3 * (InStr(1, .Text, Chr(10)) > 26)
End With
End Sub
l'équivalent en MEFC avec formule (adapter la référence de la formule dans la cellule)
mfc.jpg

edition: bonsoir kjin
 

Pièces jointes

  • mfc.jpg
    mfc.jpg
    18.2 KB · Affichages: 209
  • mfc.jpg
    mfc.jpg
    18.2 KB · Affichages: 209
Dernière édition:

Zad

XLDnaute Nouveau
Re : compter le nombre de caractères dans une cellule à plusieurs lignes

merci pour votre réponse rapide.

J'ai l'impression qu'aucune des 3 solutions ne marche parfaitement.


à quoi correspond le -4 dans =NBCAR(A1)-4>25 ?
 

Zad

XLDnaute Nouveau
Re : compter le nombre de caractères dans une cellule à plusieurs lignes

Staple1600, ta macro est pas mal, mais elle fonctionne dans 2 cas sur 4.

Elle ne colorie en rouge la cellule que si la première ligne dépasse les 25 caractères. si la 2ème ligne dépasse (et pas la première) elle reste en blanc.

Elle ne colorie pas en rouge les cellules de plus de 25 caractères ou il n'y a qu'une seule ligne. (j'avais pas précisé que certaines cellules n'avaient qu'une ligne c'est vrai :eek:).

J'ai planché dessus toute la matinée mais pas moyen de trouver la solution :confused: tu as une idée ?
 

kjin

XLDnaute Barbatruc
Re : compter le nombre de caractères dans une cellule à plusieurs lignes

Bonjour,
J'ai des cellules Excel qui contiennent 5 lignes avec un retour chariot à la fin de chaque ligne
Bin oui...
Code:
Sub 5lignesoupas5lignes()
sTxt = ActiveCell.Text
For i = 1 To Len(sTxt)
    If Asc(Mid(sTxt, i, 1)) <> 10 Then
        c = c + 1
        If c > 25 Then
            ActiveCell.Interior.ColorIndex = 3
            Exit Sub
        End If
    Else
        c = 0
    End If
Next

End Sub
A+
kjin
 

Zad

XLDnaute Nouveau
Re : compter le nombre de caractères dans une cellule à plusieurs lignes

ça marche parfaitement ! merci !! :)

Je vais essayer de rajouter une boucle pour que la macro scanne toutes les cellules du classeur et si j'ai le temps je vais rajouter une inputbox pour laisser l'utilisateur choisir la couleur. Je poste le code si j'y arrive ...

Merci encore :)
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
266

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet