Bonsoir
Je cherche un code Excel pour mettre la première lettre de chaque mot en majuscule. j'en avais trouvé un super, mais il y a des mots qui doivent rester entièrement en majuscule, et ça ne suit pas, ça met meme tout en minuscule
Existe t-il un code Excel pour réussir ceci ?
Merci beaucoup
Cordialement
A tester ce code que j'ai sous le coude, provient d'un ancien fichier "le mettre dans la feuille même"
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, [A1:Z100]) Is Nothing Then
Dim cell As Range
For Each cell In Target
cell.Value = CapitaliserPremiereLettre(cell.Value)
Next cell
End If
Application.EnableEvents = True
End Sub
Function CapitaliserPremiereLettre(ByVal texte As String) As String
Dim mots() As String
Dim mot As Variant
Dim i As Integer
mots = Split(texte, " ")
For i = LBound(mots) To UBound(mots)
If mots(i) <> "" Then
' Vérifier si le premier caractère est...
Mapomme sur ton classeur dans Excel 2021 j'ai lancé le vérificateur de compatibilité : Fichier > Informations > Vérifier la présence de problèmes choisir Vérifier la compatibilité.
Voici ce que j'ai obtenu :
C'est vraiment bizarre. Je ne comprend pas. Ou bien O365 considère d'office (jeu de mot) qu'une fonction pourrait envoyer une matrice ? Mais ce serait étrange. Là je sèche
C'est vraiment bizarre. Je ne comprend pas. Ou bien O365 considère d'office (jeu de mot) qu'une fonction pourrait envoyer une matrice ? Mais ce serait étrange. Là je sèche
Voici ce que Léo l'I.A de Brave me dit au sujet du problème rencontré :
Formules dans un classeur
Une ou plusieurs cellules de ce classeur contiennent une formule qui s’est propagée ou qui est susceptible de se propager. Cela signifie que la formule a été entrée dans une cellule et qu’elle a automatiquement été étendue à d’autres cellules adjacentes.
Comportement des formules propagées
Lorsque vous appuyez sur Entrée pour confirmer votre formule, Excel dimensionne dynamiquement la plage de sortie pour vous et place les résultats dans chaque cellule de cette plage. Si vous écrivez une formule de tableau dynamique pour agir sur une liste de données, il peut être utile de la placer dans un tableau Excel, puis d’utiliser des références structurées pour faire référence aux données.
Caractéristiques des formules propagées
Les formules propagées ne sont pas prises en charge dans les tables Excel elles-mêmes.
Les formules matricielles plus anciennes, appelées formules de tableau héritées, retournent toujours un résultat de taille fixe.
Les formules qui peuvent retourner des tableaux de taille variable sont appelées formules de tableau dynamique.
Les formules qui retournent actuellement des tableaux qui sont correctement propagées peuvent être appelées formules de tableau propagées.
Gestion des formules propagées
Pour afficher les relations entre formules et cellules, utilisez les commandes Repérer les antécédents et Repérer les dépendants.
Pour supprimer les flèches de suivi, utilisez la commande Supprimer les flèches.
Pour identifier le niveau suivant de cellules qui dépendent de la cellule active, cliquez à nouveau sur Trace Dependents.
Ben moi je viens de faire un essai dans ton classeur sous Excel 2021 . j'ai remplacé ta fonction personnalisée dans les formules par la fonction MAJUSCULE : je n'ai plus le problème. C'est la fonction personnalisée qui pose problème.
[EDIT] Et même avec une fonction personnalisée toute simple :
VB:
Function Maj(texte) As String
Maj = UCase(texte)
End Function
C'est vraiment bizarre. Je ne comprend pas. Ou bien O365 considère d'office (jeu de mot) qu'une fonction pourrait envoyer une matrice ? Mais ce serait étrange. Là je sèche
J'en remets, ceci est un chouia plus rapide que #15 (5%) :
VB:
Function PremLettreMaj$(x$)
Dim i&
x = " " & x: i = 1
Do
Mid(x, i, 2) = UCase(Mid(x, i, 2))
i = InStr(i + 1, x, " ")
Loop While i
PremLettreMaj = LTrim(x)
End Function