Extraire ls majuscules dans une cellule excel

Résolu/Fermé
tj_maxi
Messages postés
3
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
11 mars 2008
- 10 mars 2008 à 23:00
gbinforme
Messages postés
14935
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
- 24 oct. 2011 à 23:10
Je voudrais créer une formule permettant d'extraire les majuscules dans une cellule excel. Merci pour votre assistance.

3 réponses

gbinforme
Messages postés
14935
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 622
10 mars 2008 à 23:21
bonjour

Il n'y a pas de possibilité de le faire à ma connaissance avec un fonction standard mais avec une fonction personnalisée dans un module c'est possible.
Public Function majuscules(zone)
Dim sel As Object
Dim i As Integer
Application.Volatile
For Each sel In zone
    For i = 1 To Len(sel)
        If Asc(Mid(sel, i, 1)) > 64 And Asc(Mid(sel, i, 1)) < 91 Then
            majuscules = majuscules & Mid(sel, i, 1)
        End If
    Next i
Next sel
End Function

L'appel se fait avec : =majuscules(cellule ou plage)
2
tj_maxi
Messages postés
3
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
11 mars 2008

11 mars 2008 à 14:41
Merci gbinforme,

Ta fonction résoud bien mon problème.

Merci encore et à bientôt.

tj_maxi !
0
Désolé de te déranger peux tu m'expliquer comment créer une fonction personnalisée....
J'ai un fichier avec une colonne très mal traitée une fois avec civ nom prénom, une autre fois avec nom et prénom seulement, ou encore prénom tout seul....(et évidemment quelque fois sans espaces)... Mon coup de chance c'est que le nom soit en majuscule et les prénoms en minuscule je voudrais donc extraire les 2 dans 2 colonnes différentes.... merci pour ton aide si tu peux m'en fournir....
0
gbinforme
Messages postés
14935
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 622
24 oct. 2011 à 23:10
Bonjour LAzlo,

Tu peux essayer cette fonction :

Public Function min_maj(cellule, choix As String) As String
' choix = 0 (minuscules) ou 1 (majuscules)
Dim i As Integer
min_maj = ""
Application.Volatile
For i = 1 To Len(cellule)
    If choix = 1 Then
        If Asc(Mid(cellule, i, 1)) > 64 And Asc(Mid(cellule, i, 1)) < 91 Then
            min_maj = min_maj & Mid(cellule, i, 1)
        End If
    ElseIf choix = 0 Then
        If Asc(Mid(cellule, i, 1)) > 96 And Asc(Mid(cellule, i, 1)) < 123 Then
            min_maj = min_maj & Mid(cellule, i, 1)
        End If
    End If
Next i
End Function

Elle récupère soit les minuscules soit les majuscules :
Il faut la copier dans un module (mode d'emploi)

Pour l'utiliser en tenant compte de la civilité, tu peux mettre pour une cellule à trier en A1 :

=min_maj(SUBSTITUE(SUBSTITUE(SUBSTITUE(A1;"Mlle";"");"Mme";"");"Mr";"");0)

tu auras le prénom et en remplaçant 0 par 1 tu auras le nom dans une autre cellule..
Tu peux ensuite 'tirer' tes formules selon nécessité.
0
pascalouou
Messages postés
46
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
29 novembre 2008
166
10 mars 2008 à 23:23
Bonjour
Le contenu de votre cellule est-il toujours de la même longueur ou variable ?
ça doit être faisable avec une formule, si le texte n'est pas trop long, ou avec une macro sinon.
Dans l'attente de vous lire,
Cordialement,
Pascal
0
tj_maxi
Messages postés
3
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
11 mars 2008

11 mars 2008 à 14:45
Problème résolu par la fonction de gbinforme.

Le contenu de la cellule est de longueur variable.

Merci à tous.

tj_maxi.
0
salut.le site de telecharger need for speed
est merci
0