vba mise en majuscules en "quittant" une cellule
Bonjour à tou(te)s
J'ai trouvé des tas de codes pour passer le contenu d'une cellule en majuscules. Parmi tous ceux qui fonctionnaient celui qui m'a semblé le plus "propre" est celui ci :
Code:
1 2 3 4
| If Intersect(Target, Range("tb_APs[enseignant]")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True |
Code insérer dans : Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Ça fonctionne bien à un détail près. Le texte passe en majuscules quand je reviens dans la cellule ce qui semble logique puisque "Target" ça veux dire "cible" mais ce que je veux c'est que la modification se fasse à la sortie. Est-ce possible?
En tout cas merci de votre attention.
Forcer Majuscule dans cellule
Salut le forum,
Moi perso j'utilise ca : (toutes les lettres saisie en colonnes A seront des majuscules une fois la cellule validée)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| If Not Intersect(Target, Range("A:A")) Is Nothing Then
Dim MaCell As Range
With Target
If .Cells.Count > 1 Then
If .MergeCells = False Or .Areas.Count > 1 Then Exit Sub
End If
Set MaCell = .Cells(1, 1)
End With
If MaCell.Value <> "" And Not IsNumeric(MaCell.Value) Then
Application.EnableEvents = False
MaCell = UCase(MaCell)
Set MaCell = Nothing
Application.EnableEvents = True
End If
End If |
Ce code peux vous paraître long mais il fonctionne très bien, vous avez simplement à modifier la cible "A:A" pour l'adapter à votre cas.
Je vous conseillerai de remplacer la cible par un nom du gestionnaire de nom ainsi il s'appliquera uniquement aux cellules souhaitées et s'il y a des modifications de la feuille de calcul les cellules suivront. Je trouve cela très pratique.
Si vous avez des critiques et remarques constructive sur ce code je vous lirai avec plaisir :)
Bye