XL 2010 VBA - Texte colonne A toujours en majuscule

tchi456

XLDnaute Occasionnel
Bonjour,

Je recherche un code pour convertir automatiquement le texte de la colonne A en majuscule.

D'avance merci et meilleures salutations,

Thierry
 
Solution
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
Voir le fichier joint
Amicalement
Alain

AtTheOne

XLDnaute Impliqué
Supporter XLD
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
Voir le fichier joint
Amicalement
Alain
 

Pièces jointes

  • UCASE colonne A.xlsm
    12.3 KB · Affichages: 8

AL 22

XLDnaute Occasionnel
Bonjour Tchi456, bonjour à tous,

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

Bonne journée

AL 22
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Re ...
Ou un peu plus élaboré :
Code:
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

PS Modif : suppression du test IsEmpty(c)
 

Pièces jointes

  • UCASE colonne A.xlsm
    14.5 KB · Affichages: 9
Dernière édition:

tchi456

XLDnaute Occasionnel
Re ...
Ou un peu plus élaboré :
Code:
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

PS Modif : suppression du test IsEmpty(c)
Ok merci beaucoup
 

Taty 1973

XLDnaute Nouveau
Bonjour Tchi456, bonjour à tous,

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

Bonne journée

AL 22

Bonjour,

Moi c'est juste la première lettre que j'aimerais avoir en majuscule.

Merci pour votre aide

Taty
 

AL 22

XLDnaute Occasionnel
Bonsoir Taty 1973, bonsoir à tous,

Modifiez le code par celui-ci :

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 = StrConv(Target.Value, vbProperCase) 'UCase(Target.Value)
        Application.EnableEvents = True
    End If

End Sub

Bonne soirée

AL 22
 

Taty 1973

XLDnaute Nouveau
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?

Taty

********************************************************************************************************
Bonsoir Taty 1973, bonsoir à tous,

Modifiez le code par celui-ci :

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 = StrConv(Target.Value, vbProperCase) 'UCase(Target.Value)
        Application.EnableEvents = True
    End If

End Sub

Bonne soirée

AL 22
 

Taty 1973

XLDnaute Nouveau
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?

Taty

********************************************************************************************************
 

Discussions similaires

  • Question
XL pour MAC mise en forme
Réponses
2
Affichages
103
  • Question
Microsoft 365 Excel365
Réponses
2
Affichages
183
Réponses
9
Affichages
460

Statistiques des forums

Discussions
312 180
Messages
2 085 991
Membres
103 081
dernier inscrit
jeromeolivier.raymond@wat