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 !
Je pensais que tu lisais les Pattern couramment 😛...
Non, je plaisante, je vais essayer 😉
En gros, j'essaye d'extraire chaque "forme" de mot, sachant que (d'après mes essais 😀), le "ou" fait comme le If, il s'arrête au premier motif trouvé et l'extrait de la chaîne, d'où l'importance de l'ordre de gauche à droite.
Code:
(^[a-z]+[COLOR=blue](?=[A-Z])[/COLOR])
^ pour début de chaîne, 1 ou plusieurs lettres minuscules, 1 majuscule juste après le motif (Voir "assertion" que j'ai eu un peu de mal à mettre en pratique 😱) OK pour hubertDawagne
| ou
Code:
(^[a-z]+\-[a-z]+[COLOR=blue](?=[A-Z])[/COLOR])
idem avec un - entre les minuscules. OK pour pierre-jeanDe
| ou
Code:
([A-Z][a-z]+\-[A-Z][a-z]+)
début, milieu ou fin de chaîne, 1 maj, des mins, -, 1 maj, des mins.
OK pour Pierre-JeanComteDe-LimasDANSLe-Beaujolais
| ou
Code:
([A-Z][a-z]+|[A-Z]+$)
1 maj, des mins, ou que des majs fin de chaîne
Ok pour tous les mots "normaux" ou HubertDAWAGNE
| ou
Code:
([A-Z]+[COLOR=blue](?=[A-Z])[/COLOR])
Tout maj n'importe où dans la chaine, sauf à la fin car pris par le précédent
Ok pour PierreJEANDeLIMASDansLEBeaujolais
J'espère que c'est plus clair 😛.
Bonne soirée 😎
PS : PierreJean, ça ne fait que confirmer que tu es un bon exemple 😛
Bonjour à tous !
pour revenir à cette macro, j'ai excel 2016
Là vous m'avez épatez, je cherchais désespérément cette macro car j'ai le cas du : "HubertDAWAGNE" que je voulais uniquement adapter pour "A1" ( par ex.)
MAIS RIEN NE FONCTIONNE , grrrr
je suis vraiment dépassé
voici mon adaptation ( vraiment basique je le reconnait volontier)
Sub test2()
'Sub insertion_espace_2()
Dim oCel As Range, tmp$, i&
'oCel = Range("D4")
oCel = Cells(1, 4)
' With Selection 'ou tout autre plage qu'on voudra...
'For Each oCel In .Cells
If VarType(oCel) = vbString Then
tmp = oCel.Value
For i = Len(tmp) To 2 Step -1
If Mid$(tmp, i, 1) = UCase(Mid$(tmp, i, 1)) And Mid$(tmp, i, 1) <> "-" Then
If (Mid$(tmp, i + 1, 1) <> UCase(Mid$(tmp, i + 1, 1)) Or Mid$(tmp, i - 1, 1) <> UCase(Mid$(tmp, i - 1, 1))) And Mid$(tmp, i - 1, 1) <> "-" Then
tmp = Left$(tmp, i - 1) & Space(1) & Right$(tmp, Len(tmp) + 1 - i)
End If
End If
Next i
oCel.Value = WorksheetFunction.Trim(tmp)
End If
'Next oCel
'End With
'End Sub
End Sub
Si une âme charitable peut me venir en aide, je tourne en rond
Cordialement
- 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