XL 2010 VBA - Texte colonne A toujours en majuscule

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 !

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
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

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
 
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

Dernière édition:
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
 
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
 
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
 
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
 
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

********************************************************************************************************
 
- 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

Réponses
37
Affichages
545
Réponses
6
Affichages
181
Réponses
56
Affichages
2 K
Réponses
8
Affichages
434
Retour