Dans les exemples suivants j'aimerais que les lettres qui suivent un caractère non alphabétiqe restent en minuscule. |
La macro jointe au fichier d'exemple, concoctée il y a au moins deux décennies, m'a bien servie pour le français mais avec l'anglais… Aussi puis-je humblement demander aux Héros du VBA, aux Chantres de la macro-commande de (m'aider à) résoudre le problème.
|
Bonsoir,Bonsoir à Chacune & à Chacun.
Dans les exemples suivants j'aimerais que les lettres qui suivent un caractère non alphabétiqe restent en minuscule.
La macro jointe au fichier d'exemple, concoctée il y a au moins deux décennies, m'a bien servie pour le français mais avec l'anglais… Aussi puis-je humblement demander aux Héros du VBA, aux Chantres de la macro-commande de (m'aider à) résoudre le problème.
donnée originale traitement avec la macro xl4 (c'est caca) résultat attenduI'm not so sure I'M Not So Sure I'm Not So Sure This guy's in love with you This Guy'S In Love With You This Guy's In Love With You
D'avance Merci
=SUBSTITUE(SUBSTITUE(NOMPROPRE(SUBSTITUE(D4;"'";"azerty"));"azerty";"'");"Azerty";"'")
J'ai la version 2007Bonjour à tous
Coline741 : tu as quelle version Excel ?
Merci Jackes,Bonsoir,
en G4 pour le traitement des apostrophes
Code:=SUBSTITUE(SUBSTITUE(NOMPROPRE(SUBSTITUE(D4;"'";"azerty"));"azerty";"'");"Azerty";"'")
Hé JackesMerci Jackes,
Cette imbrication de fonctions répond bien à l'attente…mais Je traite plusieurs centaines de lignes quotidiennement, J'aurais préféré une macro.
Encore merci, en tout cas
Majuscule |
=SELECTION() |
=LIGNES(SELECTION()) |
=POUR.CELLULE("cellulact";;FAUX) |
=FORMULE(SUBSTITUE(SUBSTITUE(NOMPROPRE(SUBSTITUE(cellulact;"'";"azerty"));"azerty";"'");"Azerty";"'")) |
=SELECTIONNER(DECALER(CELLULE.ACTIVE();1;0)) |
=SUIVANT() |
=RETOUR() |
RE
En mettant la liste source sous forme de tableau structuré
Tu peux changer la dernière ligne du code en
ListObjects(1).DataBodyRange = Application.WorksheetFunction.Transpose(Textes1)
si tu veux changer directement la source
Merci mais la macro ne fonctionne pas sur le document jointRE
En mettant la liste source sous forme de tableau structuré
Tu peux changer la dernière ligne du code en
ListObjects(1).DataBodyRange = Application.WorksheetFunction.Transpose(Textes1)
si tu veux changer directement la source
Function properX(valeur As String)
Dim T, I&
T = Split(Replace(Replace(valeur, "'", " ' "), "-", " - "), " ")
For I = 1 To UBound(T)
If Not " '- " Like "*" & T(I - 1) & "*" Then T(I) = Application.Proper(T(I))
Next
properX = Replace(Replace(Join(T), " ' ", "'"), " - ", "-")
End Function
J'ai juste ajouté un bouton pour que tu puisses constater que cela fonctionne sur le ficher que j'ai joint où, comme je l'ai précisé, il faut mettre la liste sous forme de tableau structuré : existent depuis 18 ans...Merci mais la macro ne fonctionne pas sur le document joint
Parceque j'utilise Excel depuis 40 ans.Bonsoir à tous,
Quelle idée de vouloir utiliser des macros Excel 4.0, obsolètes depuis 25 ans ?
Et je ne comprend pas pourquoi il faut obtenir des résultats non cohérents dans ces 2 cas :
- Rhythm-a-ning
- Take The A-Train
A+
Bonsoir à tous,
Quelle idée de vouloir utiliser des macros Excel 4.0, obsolètes depuis 25 ans ?
Et je ne comprend pas pourquoi il faut obtenir des résultats non cohérents dans ces 2 cas :
- Rhythm-a-ning
- Take The A-Train
A+
Merci pour cette fonction qui fonctionne à souhait. Je vais m'en inspirer pour remplacer ma vieille macrobonsoir
une petite fonction perso VBA utilisable en formule
VB:Function properX(valeur As String) Dim T, I& T = Split(Replace(Replace(valeur, "'", " ' "), "-", " - "), " ") For I = 1 To UBound(T) If Not " '- " Like "*" & T(I - 1) & "*" Then T(I) = Application.Proper(T(I)) Next properX = Replace(Replace(Join(T), " ' ", "'"), " - ", "-") End Function
la formule de la premiere cellule
=properx(D4)
à étendre à souhait
Function properX(valeur As String)
Dim T, I&
T = Split(Replace(Replace(valeur, "'", " ' "), "-", " - "), " ")
For I = 1 To UBound(T)
If Not " '- " Like "*" & T(I - 1) & "*" Then T(I) = WorksheetFunction.Proper(T(I))
Next
properX = Replace(Replace(Join(T), " ' ", "'"), " - ", "-")
End Function
Function properX(valeur As String)
Dim T, I&
T = Split(Replace(Replace(valeur, "'", " ' "), "-", " - "), " ")
For I = 1 To UBound(T)
If Not " '- " Like "*" & T(I - 1) & "*" Then T(I) = Evaluate("=PROPER(""" & T(I) & """)")
Next
properX = Replace(Replace(Join(T), " ' ", "'"), " - ", "-")
End Function