recherche majuscule dans mot

momo93240

XLDnaute Nouveau
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,
 

Pierrot93

XLDnaute Barbatruc
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.
@+
 

Pierrot93

XLDnaute Barbatruc
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

@+
 

RENAUDER

Nous a quitté
Repose en paix
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
 

porcinet82

XLDnaute Barbatruc
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

@+
 

Valentin

XLDnaute Junior
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 ..
 

Valentin

XLDnaute Junior
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
 

Si...

XLDnaute Barbatruc
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
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom