sélectionner mots en majuscule

  • Initiateur de la discussion Initiateur de la discussion dad62
  • 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 !

dad62

XLDnaute Occasionnel
bonjour le forum ,
dans un classeur j'ai des colonnes(+ de 40000 lignes) avec plusieurs mots,dont certains sont en majuscules, est-ils possible de sélectionner automatiquement par une formule ou une macro ces mots en majuscules et les déplacés dans la cellule de droite.
 

Pièces jointes

Re : sélectionner mots en majuscule

Bonjour dad62,

Voici une proposition par macro pour déplacer les cellules qui ne contiennent que des majuscules (et espaces).
Il faut définir la plage au début de la macro.

VB:
Sub DeplaceMajuscules()
    Dim rg As Range, c As Range
    Dim s As String, i As Integer
    Dim bMaj As Boolean
    
    Set rg = [A1:A100]       'Définir la plage ici ***
    
    Application.ScreenUpdating = False
    
    For Each c In rg
        s = Replace(c.Text, " ", "")
        bMaj = True
        For i = 1 To Len(s)
            If Asc(Mid(s, i, 1)) < 65 Or Asc(Mid(s, i, 1)) > 90 Then bMaj = False: GoTo 2
        Next i
        c.Offset(0, 1) = c
        c = ""
        
2:    Next c

    Application.ScreenUpdating = True
End Sub

A+
 
Re : sélectionner mots en majuscule

Bonjour le fil 🙂,
Une petite solution en RegExp (spéciale TotoTiti qui veux s'y mettre 😛...) qui prends en compte les mots en majuscule avec l'espace qui les suit si c'est le cas... Les mots peuvent être séparés dans le reste du texte. 🙄
Code:
Sub Test()
Dim I As Integer, Match, Matches
For I = 1 To Range("A65536").End(xlUp).Row
    With CreateObject("vbscript.regexp")
        .Global = True
        .Pattern = "[A-ZÀÂÄÆÇÈÉÊËÎÏÔÖÙÛ][ A-ZÀÂÄÆÇÈÉÊËÎÏÔÖÙÛ]+"
        If .Test(Range("A" & I)) Then
            Set Matches = .Execute(Range("A" & I))
            For Each Match In Matches
                Range("B" & I) = Range("B" & I) & Match
                Range("A" & I) = Replace(Range("A" & I), Match, "")
            Next Match
        End If
    End With
Next I
End Sub
Bonne journée 😎
 
Re : sélectionner mots en majuscule

bonjour à tous,

une autre solution:
Code:
Sub testcopie()

Dim i As Integer

For i = 2 To [A65536].End(xlUp).Row
   If Range("A" & i) = UCase(Range("A" & i)) Then 
      Range("B" & i) = Range("A" & i)
      range("A" & i).clear
   End If
Next i

End Sub
 
Dernière édition:
Re : sélectionner mots en majuscule

merci à tous pour vos réponse ,mais je vais quand même prendre la solution la plus simple pour moi, c'est a dire la formule de tototiti2008 pour les macros c'est encore un peu compliquer pour moi ,la première ma oublier quelque cellules en route et les deux autres il y a une erreur d’exécution , dépassement de capacité.

bonne soirée à tous.
 
- 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

Discussions similaires

Réponses
19
Affichages
865
Réponses
10
Affichages
426
Réponses
2
Affichages
112
Réponses
5
Affichages
665
W
Réponses
17
Affichages
874
Retour