sélectionner mots en majuscule

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

  • essai.xls
    27.5 KB · Affichages: 56
  • essai.xls
    27.5 KB · Affichages: 53
  • essai.xls
    27.5 KB · Affichages: 56

Grand Chaman Excel

XLDnaute Impliqué
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+
 

JNP

XLDnaute Barbatruc
Re : sélectionner mots en majuscule

Bonjour le fil :),
Une petite solution en RegExp (spéciale TotoTiti qui veux s'y mettre :p...) 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. :rolleyes:
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 :cool:
 

francedemo

XLDnaute Occasionnel
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:

dad62

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

Discussions similaires

  • Question
XL pour MAC mise en forme
Réponses
2
Affichages
202

Statistiques des forums

Discussions
312 493
Messages
2 088 949
Membres
103 989
dernier inscrit
jralonso