Pb de macro Majuscule

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

tactic6

XLDnaute Impliqué
Bonsoir le forum et tous les autres
quelqu'un pourrait me dire ce qui ne va pas dans mon code?
Code:
Sub Majuscules()
Dim Table() As String
    Dim Mot As Range, Plage As Range
    Dim sStr As String, sRes As String
    Dim Cmpt As Long, Ptr As Long
   On Error Resume Next
    Set Plage = Application.InputBox( _
            "Sélectionner la plage à couvrir", _
            "Plage:", _
            ActiveWindow.Selection.Address(0, 0), _
            Type:=8)
    If Err <> 0 Then
     On Error GoTo 0
     Exit Sub
    End If
    If Not (Plage Is Nothing) Then
        For Each Mot In Plage
            If Not Mot.HasFormula Then
Mot.Value = UCase(Mot.Value)
End If
Next Mot
End If
End Sub

Le principe:
selectionner une cellule et executer le macro pour transformer le texte en Maj
Quand je le lance il met des heures à afficher le résultat
est-il modifiable
Merci
 
Re : Pb de macro Majuscule

bonsoir tactic6,


j'espère que cela sera suffisant. Code modifié :

Sub Majuscules()
Dim Mot As Range, Plage As Range
Set Plage = Application.InputBox("Sélectionnez la plage à couvrir, merci ", "SELECTION D'UNE PLAGE:", Type:=8)
For Each Mot In Plage
If Mot.HasFormula = False Then
Mot = UCase(Mot)
End If
Next Mot
End Sub

Cordialement

Bernard
 
Re : Pb de macro Majuscule

Bonjour,

tout dépend le nombre de cellules se trouvant dans la plage.
Je vois que tu as excel2007. Si tu sélectionnes par exemple toute la feuille, ça en fait beaucoup!!!
Maintenant tu peux toujours essayer ceci:
Code:
[B]Application.ScreenUpdating = False[/B]
If Not (Plage Is Nothing) Then
  For Each Mot In Plage.SpecialCells(xlCellTypeConstants)
      Mot.Value = UCase(Mot.Value)
  Next
End If
Cela va limiter Plage aux cellules qui ne sont pas des formules.
Mais si tu as on va dire 80% des cellules qui sont du texte, il n'y aura pas une grosse amélioration.
Ce qui est en gras permet d'éviter le rafraichissement de l'écran ce qui fait aussi gagner un peu de temps.

Edit: bonsoir Bernard
 
Re : Pb de macro Majuscule

Bsr à tous


Une autre possibilité en partant des codes précédents

Code:
Sub macroMajuscules()
Dim Mot As Range, Plage As Range
Set Plage = Application.InputBox("Sélectionnez la plage à couvrir, merci ", "SELECTION D'UNE PLAGE:", Type:=8)
Set Plage = Plage.SpecialCells(xlCellTypeConstants, 23)
For Each Mot In Plage
Mot = UCase(Mot)
Next Mot
End Sub

A+
 
- 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
743
Réponses
4
Affichages
527
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
297
Réponses
5
Affichages
931
Retour