![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juillet 2006
Messages: 44
|
Salut a vous tous, encore moi...
j'ai déja essayer avec NomPropre, il met la première lettre en majuscule et ca c'est ok, mais il me remet le mot en entier, mais j'aimerai avoir seulement la Première lettre de chaque mot de la cellule ex : camion bleu donnerai CB vélo rouge pale donnerai VRP auto verte donnerai AV ect.... en avance merci Marcmarc |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Accro
|
Salut,
Je te propose une fonction personnalisée, à coller dans un module vba standard, puis dans excel : insertion /fonction/ personnalisée. Code:
Function PremLettre(Texte As String) As String
Dim i%
Dim Str$
Application.Volatile
Str = Mid(Texte, 1, 1)
For i = 2 To Len(Texte)
If Mid(Texte, i - 1, 1) = " " Then Str = Str & Mid(Texte, i, 1)
Next i
PremLettre = Str
End Function
Edition: Je pense que ça demande à être affiné pour gérer les cas particuliers (espaces multiples par ex) Tu nous diras s'il faut aller plus loin. Dernière modification par Luki ; 01/11/2006 à 23h28. |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Accro
|
Re,
Version corrigée pour gérer les espaces multiples: Code:
Function PremLettre(Texte As String) As String
Dim i%
Dim Str$
Application.Volatile
Str = Mid(Texte, 1, 1)
For i = 2 To Len(Texte)
If Mid(Texte, i - 1, 1) = " " And Mid(Texte, i, 1) <> " " Then Str = Str & Mid(Texte, i, 1)
Next i
PremLettre = Str
End Function
|
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Accro
|
Re,
je viens de relire ton post, alors recorrection pour afficher le résultat en majuscules: Code:
Function PremLettre(Texte As String) As String
Dim i%
Dim Str$
Application.Volatile
Str = Mid(Texte, 1, 1)
For i = 2 To Len(Texte)
If Mid(Texte, i - 1, 1) = " " And Mid(Texte, i, 1) <> " " Then Str = Str & Mid(Texte, i, 1)
Next i
PremLettre = UCase(Str)
End Function
|
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Accro
Date d'inscription: août 2005
Version Excel : Excel 2000 (PC)
Messages: 1 141
|
Bonjour,
Il doit y avoir moyen de le faire avec de 'simples' formules et non en VB J'ai réussi quand il y a 2 mots, je me suis arrêtée là..
__________________
"Celui qui croit constamment, réussit forcément" (A.GIROD) |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Accro
|
Nat,
Ton exemple : !!!!! MDR!!!C'est sûr que ce doit être possible, avec 10 feuilles xl, 3 PC en réseau, 10 litres café et 3 flacons de collyre! (c'est vrai, je ne suis pas formuliste, ça se voit?). A moins qu'un des super spécialiste trouve une solution plus courte... Mais pourquoi se priver d'une fonction personnalisée (c'est une formule au final) si ça peut simplifier les choses? Si c'est pour le défi, d'accord. Sinon,...... ![]() Bonne journée à toi. |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 454
|
bonjour
![]() une autre syntaxe vba, bien moins digeste que la procédure de l'ami luki. Code:
Public Function premlettre2(cellule As Range) As String
Dim i As Integer
For i = 0 To UBound(Split(cellule, " "))
premlettre2 = UCase(premlettre2 & Left(Split(cellule, " ")(i), 1))
Next i
End Function
|
|
|
|
|
|
#8 (permalink) | |
|
XLDnaute Accro
Date d'inscription: août 2005
Version Excel : Excel 2000 (PC)
Messages: 1 141
|
Citation:
J'aurais jamais trouvé ta fonction par exemple. d'ailleurs je ne la comprends pô.. et puis masquer les colonnes ca existe ![]()
__________________
"Celui qui croit constamment, réussit forcément" (A.GIROD) |
|
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Accro
|
Pour Nat, qui comprends pô.... ( et ceusses qui veulent)
En Pj, les deux dernières fonctions proposées avec explications de texte en commentaires. Merci Hervé, jai découvert "split" que je ne connaissais pas. Bonne journée |
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 454
|
re
merci luki pour l'exemple. faut que j'arrete de minimiser les codes, ca devient incompréhensible. donc, le meme code un peu plus etoffé : Code:
Function PREM_LETTRES2(cellule As Range) As String
Dim tablo, element
Dim texte As String
'crée un tablo variant comportant toutes les sous chaines de la valeur de
'cellule séparées par un espace
tablo = Split(cellule, " ")
'boucle sur chaque élément du tablo
For Each element In tablo
'extrait le premier caractere à gauche de cette élément
'et concatene avec le texte
texte = texte & Left(element, 1)
Next element
'renvoi du texte à la fonction
PREM_LETTRES2 = UCase(texte)
End Function
|
|
|
|
|
|
#13 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: septembre 2006
Localisation: Nice
Version Excel : Excel 2003 (PC)
Messages: 27
|
Bonjour à tous, je reprends ce fil car j'ai un problème voisin mais un peu plus complexe :
j'ai une colonne A avec des adresses de ce type : 3 RUE DE LA POISSONNERIE J'applique dessus une formule type NomPropre() : résultat en colonne B 3 Rue De La Poissonnerie En fait je veux obtenir : 3 Rue de la Poissonerie Merci à tous de votre aide. A+ |
|
|
|
|
|
#15 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Localisation: Saint-Etienne
Version Excel : Excel XP (PC)
Messages: 4 454
|
bonjour
on pourrais imaginer faire un tableau des mots à exclure, exemple en piece jointe. Code:
Sub Bouton1_QuandClic()
Dim c As Range
Dim i As Byte
Dim tablo, aexclur
aexclur = Array("de", "du", "la", "des")
For Each c In Range("a1:a" & Range("a65536").End(xlUp).Row)
tablo = Split(c, " ")
For i = 1 To UBound(tablo)
If Not IsError(Application.Match(tablo(i), aexclur, 0)) Then
tablo(i) = LCase(tablo(i))
Else
tablo(i) = Application.Proper(tablo(i))
End If
Next i
c.Offset(0, 1) = Join(tablo, " ")
Next c
End Sub
![]() |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Inputbox...... premiere lettre en maj | Evelynetfrancois | Forum Excel | 5 | 27/02/2006 01h39 |
| tt mettre en minuscule sauf la première lettre | so | Forum Excel | 4 | 17/08/2005 13h22 |
| récupérer la première lettre dans un textbox | daniel | Forum Excel | 5 | 28/03/2005 17h36 |
| TextBox et renvois premiere lettre en Maj | Riri | Forum Excel Downloads - Archives | 2 | 01/06/2004 23h28 |
| première lettre d'un mot en majuscule dans une textbox ? | Syl | Forum Excel Downloads - Archives | 11 | 18/08/2003 10h26 |