Bonjour à tous, Bonjour @tchi456
En plaçant ce code dans le code de la feuille concernée :
Enrichi (BBcode):
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Then Target = UCase(Target)
Application.EnableEvents = True
End Sub
Bonjour à tous, Bonjour @tchi456
En plaçant ce code dans le code de la feuille concernée :
Enrichi (BBcode):
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Then Target = UCase(Target)
Application.EnableEvents = True
End Sub
J'avais trouvé ce code à mettre dans le module de la feuille et qui fonctionne très bien.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then '1-> Une cellule de la colonne A
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.EnableEvents = False
If Target.Column = 1 Then
For Each c In Target.Cells
If c.Column = 1 Then c = UCase(c)
Next
End If
Application.EnableEvents = True
End Sub
Avec gestion des Suppr et des saisies sur plusieurs cellules (avec validation par CTRL+ENTRÉE)
Voir fichier joint
Amicalement
Alain
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.EnableEvents = False
If Target.Column = 1 Then
For Each c In Target.Cells
If c.Column = 1 Then c = UCase(c)
Next
End If
Application.EnableEvents = True
End Sub
Avec gestion des Suppr et des saisies sur plusieurs cellules (avec validation par CTRL+ENTRÉE)
Voir fichier joint
Amicalement
Alain
J'avais trouvé ce code à mettre dans le module de la feuille et qui fonctionne très bien.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then '1-> Une cellule de la colonne A
Application.EnableEvents = False
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then '1-> Une cellule de la colonne A
Application.EnableEvents = False
Target.Value = StrConv(Target.Value, vbProperCase) 'UCase(Target.Value)
Application.EnableEvents = True
End If
End Sub
Un gros merci ça fonctionne. Mais j'aurais une autre demande.
Est ce qu'il y a un moyen pour que le code que vous m'avez donné s'applique quand j'importe des données? J'explique. J'ai des fournisseurs qui m'envoie des mises à jour pour leur produits et le nom des itemps sont tous écrient en majuscule. Quand j'importe la mises à jour dans la liste que j'ai déja, je dois créer une nouvelle colonne et utiliser la formule =NOMPROPRE(), incrémenter et déplacer la mise à jour dans la bonne colonne.
Est ce qu'il y a un moyen pour ne pas faire toute cette manupulation avec la formule et le reste?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then '1-> Une cellule de la colonne A
Application.EnableEvents = False
Target.Value = StrConv(Target.Value, vbProperCase) 'UCase(Target.Value)
Application.EnableEvents = True
End If
End Sub
Un gros merci ça fonctionne. Mais j'aurais une autre demande.
Est ce qu'il y a un moyen pour que le code que vous m'avez donné s'applique quand j'importe des données? J'explique. J'ai des fournisseurs qui m'envoie des mises à jour pour leur produits et le nom des itemps sont tous écrient en majuscule. Quand j'importe la mises à jour dans la liste que j'ai déja, je dois créer une nouvelle colonne et utiliser la formule =NOMPROPRE(), incrémenter et déplacer la mise à jour dans la bonne colonne.
Est ce qu'il y a un moyen pour ne pas faire toute cette manupulation avec la formule et le reste?