VBA remplacer une colonne en majuscule
Résolu
Marie Chant
Messages postés
136
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je ne suis pas très bien expérimenté en VBA alors je vous demande votre aide. J'ai déjà une macro mais cela prend beaucoup trop de temps pour l'exécution alors je ne crois pas que c'est la meilleure macro.
Je vous explique mon problème.
Dans ma colonne A j'ai des no factures d'inscrit soit:
Colonne A
Ligne 1 de12356
Ligne 2 CP1230
Ligne 3 GL2640
Ligne 4 gl2641
Ligne 5 le1236
Et d'une fois a l'autre une nombre de ligne est différent et souvent en haut de 5000 lignes.
Je veux que ma macro mettre toutes les lettres en majuscules.
Je mets ma colonne A en surbrillance et je lance cette macro:
Sub Majuscules()
Dim Cells As range
For Each Cells In Selection
Cells.Value = UCase(Cells.Value)
Next Cells
End Sub
Cela fonctionne MAIS c'est beaucoup trop long à exécuter. je ne sais pas comment faire pour accélérer la macro.
Pourriez-vous m'aider s.v.p.
je vous remercie de votre aide.
Je ne suis pas très bien expérimenté en VBA alors je vous demande votre aide. J'ai déjà une macro mais cela prend beaucoup trop de temps pour l'exécution alors je ne crois pas que c'est la meilleure macro.
Je vous explique mon problème.
Dans ma colonne A j'ai des no factures d'inscrit soit:
Colonne A
Ligne 1 de12356
Ligne 2 CP1230
Ligne 3 GL2640
Ligne 4 gl2641
Ligne 5 le1236
Et d'une fois a l'autre une nombre de ligne est différent et souvent en haut de 5000 lignes.
Je veux que ma macro mettre toutes les lettres en majuscules.
Je mets ma colonne A en surbrillance et je lance cette macro:
Sub Majuscules()
Dim Cells As range
For Each Cells In Selection
Cells.Value = UCase(Cells.Value)
Next Cells
End Sub
Cela fonctionne MAIS c'est beaucoup trop long à exécuter. je ne sais pas comment faire pour accélérer la macro.
Pourriez-vous m'aider s.v.p.
je vous remercie de votre aide.
A voir également:
- Vba majuscule
- É majuscule - Guide
- Majuscule - Guide
- Code ascii de a majuscule - Guide
- Mettre en majuscule - Guide
- Touche majuscule inversée ✓ - Forum Windows
1 réponse
Bonjour
test sur 14000 lignes. durée: 0,12 secodes
pour le fun; 5000 lignes en 0,08 secondes ;o)
Michel
test sur 14000 lignes. durée: 0,12 secodes
Option Explicit
'--------------------------------------
Sub mettre_majuscules()
Dim Derlig As Integer, T_min, Cptr As Integer
Dim start As Single
start = Timer
Derlig = Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
T_min = Range("A1:A" & Derlig)
For Cptr = 1 To UBound(T_min)
T_min(Cptr, 1) = UCase(T_min(Cptr, 1))
Next
Range("A1").Resize(UBound(T_min)) = T_min
MsgBox Derlig & " lignes en " & Round(Timer - start, 2) & " sec"
End Sub
pour le fun; 5000 lignes en 0,08 secondes ;o)
Michel
merci beaucoup. C'est vraiment HOT cette macro. WOW!
Elle fonctionne super bien, encore merci et bonne journée
bonsoir michel,
ce code est celui que je cherchais par contre pouvez le mettre sans le message du timing ? svp
Bonlpour
paz trop compris la demande... mais pour su^^rimer le message de fin(durée du traitement...?
supprimer les lignes
et aussi