recherche majuscule dans mot

  • Initiateur de la discussion Initiateur de la discussion momo93240
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

momo93240

Guest
Bonjour,

Je suis à la recherche d'un moyen de recuperer les majuscules d'un mot par exemple :
le mot MajusCul devient MC et egalement les mots pourlesquels je recupere les majuscules avec des chiffres par exemple Majuscule01 devient M01

Pouvez vous m'aider par formule ou par VBA

Vous en remerciant par avance,
 
Re : recherche majuscule dans mot

Bonjour momo

regarde le code ci dessous :

Code:
Sub test()
Dim m As String, i As Byte
With Range("D1")
    For i = 1 To .Characters.Count
        If (Asc(.Characters(i, 1).text) >= 65 And Asc(.Characters(i, 1).text) <= 90) Or IsNumeric(.Characters(i, 1).text) Then m = m & .Characters(i, 1).text
    Next i
End With
MsgBox m
End Sub

bonne soirée.
@+
 
Re : recherche majuscule dans mot

Re

oui c'est possible, averc une boucle supplémentaire :

Code:
Sub test()
Dim c As Range, m As String, i As Byte
For Each c In Range("D1:D" & Range("D65536").End(xlUp).Row)
    m = ""
    With c
        For i = 1 To .Characters.Count
            If (Asc(.Characters(i, 1).text) >= 65 And Asc(.Characters(i, 1).text) <= 90) Or IsNumeric(.Characters(i, 1).text) Then m = m & .Characters(i, 1).text
        Next i
    End With
    c.Offset(0, 1).Value = m
Next c
End Sub

@+
 
Re : recherche majuscule dans mot

Bonjour,

Peut-être avec cette fonction
Code:
Function Maj(LeMot) As String
    For i = 1 To Len(LeMot)
        lettre = Asc(Mid(LeMot, i, 1))
        If lettre > 64 And lettre < 91 Or lettre > 47 And lettre < 58 Then Mt = Mt & Mid(LeMot, i, 1)
    Next i
    Maj = Mt
End Function
 
Re : recherche majuscule dans mot

Salut,

Histoire de mettre mon grain de seul, pourquoi ne pas utiliser tout simplement la fonction Ucase (apres avoir repris le code de mon ami Pierrot) ?
Code:
Sub test()
Dim c As Range, m As String, i As Byte
For Each c In Range("D1:D" & Range("D65536").End(xlUp).Row)
    m = ""
    With c
        For i = 1 To .Characters.Count
            [B][COLOR=blue]If UCase(.Characters(i, 1).Text) = .Characters(i, 1).Text Then m = m & .Characters(i, 1).Text[/COLOR][/B]
        Next i
    End With
    c.Offset(0, 1).Value = m
Next c
End Sub

@+
 
Re : recherche majuscule dans mot

Bonjour à tous !

Je remontes ce vieux poste car je suis en train d'essayer de l'adapter à mon besoin ... En vain =/

Objectif :


Récupérer les valeurs de cellule qui sont en MAJUSCULE entièrement.
Autrement dit : écrire dans la colonne B l'un à la suite de l'autre les valeurs des cellules de la colonne A qui sont entièrement des majuscules (avec les caractères spéciaux.

Exemple :
Colonne A :

Bonjour
COMMENT
Tu Va ?
S-U-P-E-R BIEN !


Colonne B (résultat de la fonction) :


COMMENT
S-U-P-E-R BIEN !



Mon essai d'adaptation .... J'y ai cru quand même ... ^^
Code:
Sub test()
Dim c As Range, m As String, i As Byte
t = 1


For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
    m = ""
    k = 0 'reinit flag si passage

     With c
        For i = 1 To .Characters.Count
            m = m & .Characters(i, 1).Text
        Next i
            
            If UCase(m) = m Then
            m = Cells(i, 1).Text
            t = t + 1
            k = 1 'flag levé si passage
            End If
                        
            
            If Not UCase(m) = m Then
            k = 0 'reinit flag si passage
            End If
    
    End With
   
   
If k = 1 Then Cells(t, 2).Value = m
    
Next c
End Sub


Merci à tous 🙂


En attendant je continue de chercher où se situe mes erreurs ..
 
Re : recherche majuscule dans mot

Ok j'ai trouvé quelque chose qui me convient :

Code:
Sub test()
Dim c As Range, m As String, i As Byte
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
    m = ""

    With c
    
        For i = 1 To .Characters.Count
        
            If UCase(.Characters(i, 1).Text) = .Characters(i, 1).Text Then m = m & .Characters(i, 1).Text
            
            If Not UCase(.Characters(i, 1).Text) = .Characters(i, 1).Text Then
            m = ""
            Exit For
            End If
            
        Next i
        
    End With
    
    
    c.Offset(0, 1).Value = m
Next c
End Sub


+ tri pour ne pas afficher les cellules vides


Bonne journée à tous
 
Re : recherche majuscule dans mot

salut

"Récupérer les valeurs de cellule qui sont en MAJUSCULE", Si... "entièrement.", cela pourrait suffire
Code:
Option Explicit
Sub test()
  Dim c As Range, t As Long
  For Each c In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
    If UCase(c) = c Then
      t = t + 1
      Cells(t, 2).Value = c
    End If
  Next
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
533
  • Question Question
Réponses
6
Affichages
416
Réponses
6
Affichages
323
Retour