Ne garder que le texte en minuscule

Evelynetfrancois

XLDnaute Impliqué
bonjour tout le monde
je cherche a faire une macro expliquée par l exemple ci dessous en espérant être clair

For Each Cell In Range("c2:w50")
If Cell.Value <> "" Then Cell.Value = "Ok"
donc : Si la cell n’est pas vide alors ca note « OK »
Ex : BATEAU ____ devient donc « OK »


Si la cell n’est pas vide et contient du texte en minuscule alors ça noterait « le texte minuscule »
Ex : BATEAU vert ____deviendrait « vert »
TRAIN à vapeur ____deviendrait « à vapeur »
et VELO____ deviendrait donc « OK »

Cela vous parait t-il possible
un grand merci d'avance pour toutes vos idées
evelynetfrancois
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Ne garder que le texte en minuscule

Bonsoir Evelynetfrancois,

Un essai ?:
VB:
Sub test()
Dim cell, T, mot, S$
  For Each cell In Range("c2:w50")
    S = ""
    T = Split(Application.WorksheetFunction.Trim(cell))
    For Each mot In T
      If LCase(mot) = mot Then S = S & " " & mot
    Next mot
    If S = "" Then cell.Value = "OK" Else cell.Value = Application.WorksheetFunction.Trim(S)
  Next cell
End Sub
 

Chris401

XLDnaute Accro
Re : Ne garder que le texte en minuscule

Bonsoir

Je suis en retard, mais je poste quand même :
Code:
Sub Remplace()
Application.ScreenUpdating = False
Dim c As Range
Dim Var1 As String, Var2 As String
    For Each c In Range("C2:W50")
        If c > 0 Then
            For i = Len(c) To 1 Step -1
                Var1 = Mid(c, i, 1)
                Var2 = Mid(LCase(c), i, 1)
                    If Var1 <> Var2 Then c = Replace(c, Var1, "")
            Next i
            c = IIf(Trim(c) = "", "OK", Trim(c))
        End If
    Next c
End Sub
Cordialement
Chris
 

Evelynetfrancois

XLDnaute Impliqué
Re : Ne garder que le texte en minuscule

Merci pour ces propositions super rapides
Y a pas, vous êtes impressionnant !!!

La proposition de lapomme semble ne pas être loin du résultat escompté
Elle met des ok dans toutes les cellules vides, surement pas grand choses à corriger pour vous....je pense

La proposition de chris401 fonctionne quant a elle parfaitement bien !!!!

Encore un très grand MERCI !
Au plaisir de vous lire à nouveau
evelynetfrancois
 

CISCO

XLDnaute Barbatruc
Re : Ne garder que le texte en minuscule

Bonsoir

J'arrive un peu en retard, mais puisque je l'ai fait...
Code:
Sub essai()
Dim  Cell As Range, y As String, i As Integer
Application.ScreenUpdating = False
For Each Cell In Range("C2:W50")
    If Cell.Value <> "" Then
    y = ""
        For i = 1 To Len(Cell.Value)
            If Mid(Cell.Value, i, 1) = LCase(Mid(Cell.Value, i, 1)) Then
            y = y + Mid(Cell.Value, i, 1)
            End If
        Next i
    Cell.Value = IIf(y = "", "OK", Trim(y))
    End If
Next
Application.ScreenUpdating = True
End Sub

@ plus
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Ne garder que le texte en minuscule

Re Evelynetfrancois, Chris401 :), CISCO :),

La proposition de lapomme semble ne pas être loin du résultat escompté
Elle met des ok dans toutes les cellules vides, surement pas grand choses à corriger pour vous....je pense

Effectivement, il faut que j'apprenne à faire la différence entre <> et = !!!! :mad:

Un autre proposition:
VB:
Sub test()
Dim cell, T, mot, S$
  For Each cell In Range("c2:w50")
    If cell <> "" Then
      S = "": T = Split(Application.WorksheetFunction.Trim(cell))
      For Each mot In T: S = S & IIf(LCase(mot) = mot, " " & mot, ""): Next mot
      cell.Value = IIf(S = "", "OK", Trim(S))
    End If
  Next cell
End Sub
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Ne garder que le texte en minuscule

Bonjour à tous

Mapomme, est-ce que tu pourrais m'expliquer ce que fait la fonction split dans ta macro ?
Dans la doc que j'ai, c'est écrit "Renvoie un tableau de base zéro à une dimension contenant le nombre spécifié de sous-chaînes", ce qui n'est pas très compréhensible pour moi, vu mon niveau en VBA...

@ plus
 

Dranreb

XLDnaute Barbatruc
Re : Ne garder que le texte en minuscule

Bonjour.
C'est sûr ce n'est pas clair. Ils auraient plutôt dû mettre :
Renvoie un tableau unidimensionnel de base zéro contenant les parties d'un texte découpé selon un certain séparateur.

(Le séparateur peut comporter plusieurs caractères, n'importe quel texte en fait. Lorsqu'il n'est pas précisé, comme second paramètre, un espace est assumé)
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Ne garder que le texte en minuscule

Bonjour

Merci Dranreb. Je comprend mieux. J'ai aussi cherché sur MSDN. Et on voit le résultat dans la fenêtre "Variables locales"
split.JPG
alors qu'en C2 il y a "hhdd HHHH".

@ plus
 

Pièces jointes

  • split.JPG
    split.JPG
    31.8 KB · Affichages: 35
Dernière édition:

Statistiques des forums

Discussions
312 095
Messages
2 085 248
Membres
102 835
dernier inscrit
Alexandrax971