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

Le
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #23402591
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
Jacky
Le #23404681
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"
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
MichD
Le #23405331
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
Jacquouille
Le #23408961
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
MichD
Le #23409651
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
Publicité
Poster une réponse
Anonyme