Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Contrôle chiffre ou lettre dans une cellule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bertgrav

XLDnaute Occasionnel
bonsoir,

je voudrais contrôler chaque cellule et mentionner dans la cellule voisine si cette cellule comporte au moins 1 chiffre dans son groupe de caractéres.

le fichier joint permet de mieux comprendre, en colonne A j'ai les cellules à contrôler et en colonne B j'ai le résultat

merci de votre aide

chantal
 

Pièces jointes

Re : Contrôle chiffre ou lettre dans une cellule

Bonsoir,

Un essai avec LIGNE, INDIRECT et une pincée de SOMMEPROD :

en B1 :

Code:
=SI(SOMMEPROD(((ESTNUM(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1))
=VRAI)*1);"CHIFFRE";"LETTRE")

Y doit y avoir moyen de faire plus court, mais pas trop le temps.

En tout cas ça marche. A tester quand même.

@+
 
Re : Contrôle chiffre ou lettre dans une cellule

merci tibo

je voudrais réaliser ce contrôle en VBA, j'ai réussi un code mais c'est un peu tiré par les cheveux, en fait je contrôle caractere par caractere si c'est ou pas du numérique, je suis persuadée qu'il y a nettement plus simple

Sub Chiffre_lettre2()
Dim I As Integer, Text As String, Car As String

fin = Range("a65536").End(xlUp).Row
For x = 1 To fin
y = 0
Text = Range("a" & x).Value
For I = 1 To Len(Text)
Car = Mid(Text, I, 1)

If IsNumeric(Car) Then
Range("b" & x).Value = "chiffre"
y = y + 1
End If

Next
If y = 0 Then Range("b" & x).Value = "lettre"
Next
End Sub

merci

chantal
 
Re : Contrôle chiffre ou lettre dans une cellule

Bonjour Chantal, Tibo

essaye peut être comme ceci :

Code:
Option Explicit
Sub test()
Dim c As Range, i As Byte
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
    For i = 1 To Len(c.Value)
        If IsNumeric(c.Characters(i, 1).Text) Then c.Offset(0, 1).Value = "chiffre"
    Next i
Next c
End Sub

bonne soirée
@+
 
Re : Contrôle chiffre ou lettre dans une cellule

Bonjour Chantal, Tibo

en un peu plus court et plus rapide, évite la 2ème boucle :

Code:
Option Explicit
Sub test()
Dim c As Range, i As Byte
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
    If c.Value Like "*[0-9]*" Then c.Offset(0, 1).Value = "chiffre"
Next c
End Sub

bon week ebd.
@+
 
Re : Contrôle chiffre ou lettre dans une cellule

Bonjour,

Pour le fun, une formule un peu plus courte que celle proposée hier :

Code:
=SI(ESTNUM(EQUIV(9^9;(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1)));
"CHIFFRE";"LETTRE")

Formule toujours matricielle (CTRL + MAJ + ENTREE)

Bon app

Bon WE à tous

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…