Manipulation avec Ucase de chaine de caratères

  • Initiateur de la discussion Initiateur de la discussion zephir94
  • Date de début Date de début

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 !

zephir94

XLDnaute Impliqué
Bonjour à tous,

Je recherche un tuto pour manipuler en Vba des chaines de caractères,
j'ai dans une Cellule par exemple didier mopote et je voudrais le transformer en Didier MOPOTE
et c'est le drame !

Job75 m'a donner une solution hier mais j'ai pas trop compris !

Merci à vous tous pour vos aides
 
Dernière édition:
Re : Manipulation avec Ucase de chaine de caratères

Bonjour à tous,

Peux-tu essayer (Nom Propre en A, MAJUSCULE en B et Nom Propre en C) :

VB:
Private Sub Worksheet_Change(ByVal zz As Range)
    Dim Cel As Range


    If Not Intersect(zz, [A2:A100]) Is Nothing Then
        Application.EnableEvents = False
        For Each Cel In Intersect(zz, [A2:A100]).Cells
            Cel = WorksheetFunction.Proper(Cel)
        Next Cel
        Application.EnableEvents = True
    End If


    If Not Intersect(zz, [B2:B100]) Is Nothing Then
        Application.EnableEvents = False
        For Each Cel In Intersect(zz, [B2:B100]).Cells
            Cel = UCase(Cel)
        Next Cel
        Application.EnableEvents = True
    End If


    If Not Intersect(zz, [C2:C100]) Is Nothing Then
        Application.EnableEvents = False
        For Each Cel In Intersect(zz, [C2:C100]).Cells
            Cel = WorksheetFunction.Proper(Cel)
        Next Cel
        Application.EnableEvents = True
    End If
End Sub

Ou

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plage As Range, C As Range
Set Plage = Intersect(Target, Range("B6:C31"))
If Not Plage Is Nothing Then
    Application.EnableEvents = False
    For Each C In Plage
        If C <> "" Then
            Select Case C.Column
                Case 2 'Pour la colonne B
                    C.Value = UCase(C.Value)
                Case 3 'Pour la colonne C
                    C.Value = Application.Proper(C.Value)
            End Select
        End If
    Next
    Application.EnableEvents = True
End If
End Sub

A+ à tous
 
Dernière édition:
Re : Manipulation avec Ucase de chaine de caratères

Bonjour zephir94, Jean-Claude, David,

Utilisez l'une de ces 2 fonctions, voyez le fichier joint :

Code:
Function SPLITMAJ$(t$)
Dim s
t = Application.Trim(t) 'SUPPRESPACE
s = Split(t)
If UBound(s) < 0 Then Exit Function
SPLITMAJ = s(0) & UCase(Mid(t, Len(s(0)) + 1))
End Function

Function SPLITMAJ1$(t$)
Dim s
t = Application.Trim(t) 'SUPPRESPACE
s = Split(t, , 2)
If UBound(s) < 1 Then SPLITMAJ1 = t: Exit Function
SPLITMAJ1 = s(0) & " " & UCase(s(1))
End Function
Job75 m'a donner une solution hier mais j'ai pas trop compris !
Vous risquez de ne pas plus comprendre aujourd'hui, voyez l'aide VBA sur Split.

Bonne journée.
 

Pièces jointes

- 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
9
Affichages
936
Réponses
5
Affichages
747
P
Réponses
6
Affichages
1 K
P
Retour