Fonction UCase (mise en majuscule)

Bonsoir,

J'ai un petit soucis de code pour renvoyer mes tableaux en majuscule, pouvez-vous m'indiquer où se trouve l'erreur dans ce code ? Une fenêtre m'indique que l'argument lowerCase n'est pas facultatif et me refuse l'exécution.

Merci d'avance

Sub texte_majuscule()

'Renvoi les données des tableaux de la feuille en majuscule

Dim lowerCase As New Collection, UpperCase As New Collection

lowerCase = ActiveWorkbook.Worksheet(4).Range("A1:V240").Value

UpperCase = UCase(lowerCase)

End Sub

Bonjour,

Sub texte_majuscule()
    'Renvoi les données des tableaux de la feuille en majuscule
    ActiveWorkbook.Worksheets(4).Range("A1:V240").Value = UCase(ActiveWorkbook.Worksheets(4).Range("A1:V240").Value)
End Sub

pas besoin de plus.

Je me suis basé sur ton code mais je te déconseille d'utiliser ActiveWorkbook (sauf si compris et parfaitement voulu)

Tu ne sais pas quel classeur pourra être actif lorsque l'utilisateur lancera la macro.

Cite le classeur pour lever toute ambiguïté :

Workbook("mon_classeur").Worksheets(... etc

Idem pour Worksheets(4), qui est la 4ème feuille... jusqu'à ce qu'un utilisateur la déplace.

Utilise son nom ou son codename

eric

Merci pour ton aide

le code ne me permet pas d'obtenir des majusculeS. est-ce qu'il a fonctionné pour toi ?

Bonjour,

effectivement, j'avais été un peu trop rapide dans ma réponse.

Sub texte_majuscule()
    'Renvoi les données des tableaux de la feuille en majuscule
    Dim pl As Range, c As Range
    Application.ScreenUpdating = False
    Set pl = ActiveWorkbook.Worksheets(4).Range("A1:V240").SpecialCells(xlCellTypeConstants, xlTextValues)
    If Not pl Is Nothing Then
        For Each c In pl
            c = UCase(c.Value)
        Next c
    End If
End Sub

Et si sur toute la plage tu n'as aucune formule on peut faire plus rapide.

Ma reqmarque sur ActiveWorkbook reste d'actualité...

eric

de rien...

merci !

Rechercher des sujets similaires à "fonction ucase mise majuscule"