comment separer les caracteres en majuscules des caracteres en minuscules??

cam8701

XLDnaute Nouveau
Bonjour.

Je cherche à séparer les les caracteres en majuscules des caracteres en minuscules...

Soit:

CamilleGUILLETON en A1.

je cherche à obtenir Camille en A1 et GUILLETON en A2.

Quelqu'un pourrait'il m' aider?? Cela me serai de grand secours!!!

Merci d'avance.

Cam
 

job75

XLDnaute Barbatruc
Re : comment separer les caracteres en majuscules des caracteres en minuscules??

Bonjour,

Cela dépend un peu de la configuration...

Soit dans tous les cas :

Code:
Sub MajMin()
Dim cel As Range, x$, txt1$, txt2$
Set cel = [A1] 'à adapter
For i = 1 To Len(cel)
  x = Mid(cel, i, 1)
  If x = LCase(x) Then txt1 = txt1 & x Else txt2 = txt2 & x
Next
cel = txt1
cel.Offset(1) = txt2
End Sub

Soit dans le cas présenté :

Code:
Sub MajMin()
Dim cel As Range, x$, txt1$, txt2$
Set cel = [A1] 'à adapter
For i = 1 To Len(cel)
  x = Mid(cel, i, 1)
  If i = 1 Or x = LCase(x) Then txt1 = txt1 & x Else txt2 = txt2 & x
Next
cel = txt1
cel.Offset(1) = txt2
End Sub

A+
 

kiki29

XLDnaute Barbatruc
Re : comment separer les caracteres en majuscules des caracteres en minuscules??

Salut,comme j'ai un peu cherché je soumets ceci
Code:
Option Explicit

Sub Tst()
Dim LastRow As Long, i As Long, j As Long
Dim L As Long, s As String, c As String * 1
Dim cpt As Long, s1 As String, s2 As String

    LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To LastRow
        L = Len(Feuil1.Range("A" & i))
        cpt = 0
        s = Feuil1.Range("A" & i)
        For j = 1 To L
            c = Mid$(s, j, 1)
            If c = UCase$(c) Then cpt = cpt + 1
            If cpt = 2 Then
                s1 = Left$(s, j - 1)
                s2 = Right$(s, L - j + 1)
                Exit For
            End If
        Next j
        Feuil1.Range("B" & i) = s1
        Feuil1.Range("C" & i) = s2
    Next i
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : comment separer les caracteres en majuscules des caracteres en minuscules??

Re,

Avec la configuration présentée par notre ami, on peut supposer que :

- chaque mot en minuscules commence par une majuscule

- il n'y a que des lettres (plus d'espaces, tirets, etc)

Alors essayer :

Code:
Sub MajMin()
Dim cel As Range, x$, y$, txt1$, txt2$
Set cel = [A1] 'à adapter
For i = 1 To Len(cel)
  x = Mid(cel, i, 1)
  y = Mid(cel, i + 1, 1)
  If x = LCase(x) Or y = LCase(y) And y <> "" Then _
    txt1 = txt1 & x Else txt2 = txt2 & x
Next
cel = txt1
cel.Offset(1) = txt2
End Sub

A+
 

kiki29

XLDnaute Barbatruc
Re : comment separer les caracteres en majuscules des caracteres en minuscules??

Re,une autre , en commençant par la fin de la chaine
Code:
Sub Tst2()
Dim LastRow As Long, i As Long, j As Long
Dim L As Long, s As String, c As String * 1
Dim s1 As String, s2 As String

    LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To LastRow
        L = Len(Feuil1.Range("A" & i))
        s = Feuil1.Range("A" & i)
        For j = L To 1 Step -1
            c = Mid$(s, j, 1)
            If c = LCase$(c) Then
                s1 = Left$(s, j)
                s2 = Right$(s, L - j)
                Exit For
            End If
        Next j
        Feuil1.Range("B" & i) = s1
        Feuil1.Range("C" & i) = s2
    Next i
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 978
Membres
103 996
dernier inscrit
KB4175