Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Mise en forme cellules

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

boulou

XLDnaute Occasionnel
Bonjour à tous,

Avec cette instruction toutes les cellules de la feuille sont en majuscules.

Sub Mise_en_majuscules()
Dim texte As Range, cellule As Range
Set texte = Cells.SpecialCells(xlCellTypeConstants, 2)
For Each cellule In texte
cellule = StrConv(cellule.Text, vbUpperCase)
Next
End Sub

Comment la modifier pour que cette mise en forme ne s'applique qu'à une plage donnée type ("B5:B42")

Merci.
 
Re : Mise en forme cellules

Bonjour boulou, les gens du fil & du forum


Une solution possible
Code:
Option Explicit
Const MA_PLAGE As String = "B5:B42"
Sub Mise_en_majuscules()
Dim texte As Range, cellule As Range
Set texte = _
    Application.InputBox("Sélectionner une plage de cellules", _
    "Mise en majuscule", MA_PLAGE, , , , , Type:=8).SpecialCells(xlCellTypeConstants, 2)
For Each cellule In texte
cellule = StrConv(cellule.Text, vbUpperCase)
Next
End Sub
 
Re : Mise en forme cellules

bonjour
Une autre approche
Code:
Sub Mise_en_majuscules()
    Dim texte As Range, cellule As Range
    Dim z, y As Long
    Dim a As Object
    Range("B5:B42").Select
    Selection.SpecialCells(xlCellTypeVisible).Select

    For Each a In Selection
        If a <> "" Then
            z = a.Row
            y = a.Column
            a = StrConv(a, vbUpperCase)
            Cells(z, y) = a
        End If
    Next
End Sub
 
Re : Mise en forme cellules

Bonjour

typo
Pourquoi utiliser des Select ?

(alors qu'il est recommandé de les limiter au maximum)

Pour le fun , une variante de ton code 😉
Code:
Sub Mise_en_majuscules3()
    Dim texte As Range, z As Long, y As Long, a As Range
    Set texte = Range("B5:B42").SpecialCells(xlCellTypeVisible)
    For Each a In texte
    a = StrConv(a, vbUpperCase)
    Cells((IIf(Not IsEmpty(a), a.Row, a.Row)), (IIf(Not IsEmpty(a), a.Column, a.Column))) = StrConv(a, vbUpperCase)
    Next
End Sub
Pourquoi ne pas utiliser ce qui est en rouge 😕
 
Dernière édition:
Re : Mise en forme cellules


Allez abusons de vos services ! .....MERCI.

Et si je veux affecter plusieurs plages distinctes ?
Ex: "B5:B42" & "C12😀18" & "H15:H20"
 
- 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
4
Affichages
316
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…