[VBA] - Majuscule en couleur

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 !

blap_psx

XLDnaute Nouveau
Bonjours à tous,

Dans le but de bien faire la distinction entre les majuscules et les minuscules dans des champs de mot de passe (liste de mot de passe d'une 30ène de boite mail pro), j'ai écrit la petite macro suivante.

Code:
Sub Test()

'juste pour le permettre de verifier que les variables était bien attribué
Cel = Selection

For i = 1 To Len(Cel)

'juste pour le permettre de verifier que les variables était bien attribué
ActiveCell = Cel
test1 = ActiveCell.Characters(Start:=i, Length:=1).Text
test2 = UCase(test1)

'test si la lettre est en MAJ - Comparaison de la lettre avec son équivalent en UperCase
    If test1 = UCase(test1) Then
        ActiveCell.Characters(Start:=i, Length:=1).Font.ColorIndex = 3
    End If
Next i
End Sub

Le soucis, c'est que la macro executé sur une cellule contenant, par exemple :
A1=lcKZtEyV

me retourne

lcKZtEyV

En mode pas à pas, j'ai bien les lettres Majuscule qui passe en couleurs, chacune leurs tours, mais aucune n'est sauvegardé. Uniquement la dernière si celle ci est une majuscule.

-> lcKZtEyV (test l)
-> lcKZtEyV (test c)
-> lcKZtEyV (test K)
-> lcKZtEyV (test Z)
-> lcKZtEyV (test t)
-> lcKZtEyV (test E)
-> lcKZtEyV (test y)
et enfin
lcKZtEyV

Comment faire pour pouvoir conservé cette modification et obtenir :

lcKZtEyV

La commande ActiveCell.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 n'es pas memorisé à chaque tour du For, uniquement sur le dernier ...

Je sèche ( et je suis pas un spécialiste du VBA )

Merci d'avance.

@+
 
Dernière édition:
Re : [VBA] - Majuscule en couleur

bonjour

Sub Test()
Dim cpt, i, caract
For i = 1 To Len(ActiveCell)
caract = Mid(ActiveCell, i, 1)
If caract = UCase(caract) Then
ActiveCell.Characters(Start:=i, Length:=1).Font.ColorIndex = 3
End If
Next i
End Sub
 
Re : [VBA] - Majuscule en couleur

Voila un code plus simple qui utilise asc pour chercher les majuscules

Sub color()
For Each cel In ActiveSheet.UsedRange
For n = 1 To Len(cel)
If Asc(Mid(cel, n, 1)) >= 65 And Asc(Mid(cel, n, 1)) <= 90 Then
cel.Characters(Start:=n, Length:=1).Font.ColorIndex = 3
End If
Next n
Next cel
End Sub
 
- 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

Retour