Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

verfier la presence d une lettre de l alphabet dans une plage de cellule

5 réponses
Avatar
joseph84
Bonjour tout le monde

j ai un petit probleme je voudrais faire une macro qui verifie si il y
a une lettre de l alphabet dans une colonne si oui il me met un X


exemple

A L AJ

1234 B X
4321 &
45623 Z X

Merci

5 réponses

Avatar
MichD
Bonjour,

Tu adaptes le nom de la feuille de la plage

Sub test()
Dim C As Range, Rg As Range
With Worksheets("Feuil1")
'Pour chaque cellule de la plage
For Each C In .Range("L1:L" & .Range("L65536").End(xlUp).Row)
'vérifie si le nombre de caractères est égale à 1
If Len(C.Value) = 1 Then
'Si oui, est-ce que ce caractère est une lettre de l'alphabet
Select Case Asc(C.Value)
'Les minuscules et majuscules
Case 97 To 122, 65 To 90
C.Offset(, 24) = "X"
End Select
End If
Next
Application.EnableEvents = True
End With
End Sub


MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


Bonjour tout le monde

j ai un petit probleme je voudrais faire une macro qui verifie si il y
a une lettre de l alphabet dans une colonne si oui il me met un X


exemple

A L AJ

1234 B X
4321 &
45623 Z X

Merci
Avatar
Jacky
Bonjour,

Autre proposition.... sans vba
En AJ2
=SI(OU(NBCAR(L2)>1;L2="");"";SI(OU(ET(CODE(L2)>96;CODE(L2)<123);ET(CODE(L2)>64;CODE(L2)<91));"X";""))

et recopier vers le bas
*formule sur une seul ligne

--
Salutations
JJ


"joseph84" a écrit dans le message de news:

Bonjour tout le monde

j ai un petit probleme je voudrais faire une macro qui verifie si il y
a une lettre de l alphabet dans une colonne si oui il me met un X


exemple

A L AJ

1234 B X
4321 &
45623 Z X

Merci
Avatar
MichD
Une formule d'un autre type pour la donne du problème...

Validation matricielle : Maj + Ctrl + Enter
=SI(NBCAR(A1)=1;SI(ESTNUM(EQUIV(CODE(MAJUSCULE(A1));LIGNE(INDIRECT("65:90"));0));"X";"");"")



MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


Bonjour tout le monde

j ai un petit probleme je voudrais faire une macro qui verifie si il y
a une lettre de l alphabet dans une colonne si oui il me met un X


exemple

A L AJ

1234 B X
4321 &
45623 Z X

Merci
Avatar
Jacquouille
Pffff
Lire des machins comme cela, ....ça va
Les comprendre, c'est une autre paire de manche
Les pondre, c'est pire que de faire pondre des œufs carrés à une poule. -)))
Une fois de plus, merci
Je me prosterne bien bas devant ce savoir. -)


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
is35ho$77b$

Une formule d'un autre type pour la donne du problème...

Validation matricielle : Maj + Ctrl + Enter
=SI(NBCAR(A1)=1;SI(ESTNUM(EQUIV(CODE(MAJUSCULE(A1));LIGNE(INDIRECT("65:90"));0));"X";"");"")



MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


Bonjour tout le monde

j ai un petit probleme je voudrais faire une macro qui verifie si il y
a une lettre de l alphabet dans une colonne si oui il me met un X


exemple

A L AJ

1234 B X
4321 &
45623 Z X

Merci
Avatar
MichD
Elle est simple la formule :

=SI(NBCAR(A1)=1;SI(ESTNUM(EQUIV(CODE(MAJUSCULE(A1));LIGNE(INDIRECT("65:90"));0));"X";"");"")

Tu la sectionnes :
EQUIV(CODE(MAJUSCULE(A1));LIGNE(INDIRECT("65:90"));0)

Majuscule(A1) assure que toutes les lettres sont en majuscules
la fonction Code() d'une lettre majuscule retourne une valeur entre 65 et 90 inclusivement

La combinaison de la fonction Majuscule et Code retourne le premier paramètre de la fonction Equiv()

Le deuxième paramètre de la fonction Equiv() est le tableau (array) "LIGNE(INDIRECT("65:90"))" qui retourne chacun des
numéros de lignes de 65 à 90

Troisième paramètre de Equiv() est 0 mais dans ce cas on aurait pu utiliser aussi 1, voire l'aide d'Excel sur la
fonction Equiv()

Si A1 contient la lettre "A" : CODE(MAJUSCULE(A1)) = 65
Le tableau des codes possibles : 65 - 66 - 67- .... 89 -90
Equiv(65;Tableau;0)

EstNum teste si Equiv() a trouvé, si oui, elle retourne la position de la valeur dans le tableau sinon elle retourne NA

Cette section de la formule vérifie que nous avons affaire à une cellule qui contient un caractère, car c'est un élément
de la donne du problème et nous voulons nous éviter que la cellule afficher une valeur d'erreur si la cellule est vide
par exemple. ....SI(NBCAR(A1)=1

Reste à unir les composants comme une petite formule avec des "si" et le tour est joué.

MichD
--------------------------------------------
"Jacquouille" a écrit dans le message de groupe de discussion : 4de658a1$0$14244$

Pffff
Lire des machins comme cela, ....ça va
Les comprendre, c'est une autre paire de manche
Les pondre, c'est pire que de faire pondre des œufs carrés à une poule. -)))
Une fois de plus, merci
Je me prosterne bien bas devant ce savoir. -)


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"MichD" a écrit dans le message de groupe de discussion :
is35ho$77b$

Une formule d'un autre type pour la donne du problème...

Validation matricielle : Maj + Ctrl + Enter
=SI(NBCAR(A1)=1;SI(ESTNUM(EQUIV(CODE(MAJUSCULE(A1));LIGNE(INDIRECT("65:90"));0));"X";"");"")



MichD
--------------------------------------------
"joseph84" a écrit dans le message de groupe de discussion :


Bonjour tout le monde

j ai un petit probleme je voudrais faire une macro qui verifie si il y
a une lettre de l alphabet dans une colonne si oui il me met un X


exemple

A L AJ

1234 B X
4321 &
45623 Z X

Merci