Extraire ls majuscules dans une cellule excel

Résolu
tj_maxi Messages postés 3 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Je voudrais créer une formule permettant d'extraire les majuscules dans une cellule excel. Merci pour votre assistance.
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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)
    3
    1. tj_maxi Messages postés 3 Statut Membre
       
      Merci gbinforme,

      Ta fonction résoud bien mon problème.

      Merci encore et à bientôt.

      tj_maxi !
      0
    2. LAzlo
       
      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
    3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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
  2. pascalouou Messages postés 48 Date d'inscription   Statut Membre 172
     
    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
    1. tj_maxi Messages postés 3 Statut Membre
       
      Problème résolu par la fonction de gbinforme.

      Le contenu de la cellule est de longueur variable.

      Merci à tous.

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