Simplification de code

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

Jiheme

XLDnaute Accro
Bonjour à tous

Voici ma première macro, faite par l'enregistreur et à laquelle j'ai ajouté un bout de code trouvé sur ce forum, pour déprotéger et reprotéger ma feuille :

Sub USD()
'
' USD Macro
' Macro enregistrée le 04/07/2007 par Admin
'
' Touche de raccourci du clavier: Ctrl+Maj+W
'
ActiveSheet.Unprotect Password:="1234"
Range("H20:H43").Select
Selection.NumberFormat = _
"_-[$$-409]* #,##0.000_ ;_-[$$-409]* -#,##0.000 ;_-[$$-409]* ""-""???_ ;_-@_ "
Range("J20:J46").Select
Selection.NumberFormat = _
"_-[$$-409]* #,##0.00_ ;_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "
Range("B44").Select
ActiveCell.FormulaR1C1 = "USD"
Range("B45").Select
ActiveCell.FormulaR1C1 = "USD"
Range("B46").Select
ActiveCell.FormulaR1C1 = "USD"
Range("C46").Select
ActiveSheet.Protect Password:="1234"
End Sub

Si l'un(e) d'entre vous a quelques minutes j'aimerais voir si ce code peut être simplifié et comment, juste pour ma formation.
Ce n'est absolument pas urgent Merci

Jean-Marc
 
Re : Simplification de code

Bonjour à tous,

Peux-tu essayer avec ceci :

Code:
Sub USD()
'
' USD Macro
' Macro enregistrée le 04/07/2007 par Admin
'
' Touche de raccourci du clavier: Ctrl+Maj+W
'
ActiveSheet.Unprotect Password:="1234"
Range("H20:H43").NumberFormat = _
"_-[$$-409]* #,##0.000_ ;_-[$$-409]* -#,##0.000 ;_-[$$-409]* ""-""???_ ;_-@_ "
Range("J20:J46").NumberFormat = _
"_-[$$-409]* #,##0.00_ ;_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "
Range("B44").Formula = "USD"
Range("B45").Formula = "USD"
Range("B46").Formula = "USD"
Range("C46").Select
ActiveSheet.Protect Password:="1234"
End Sub

Sous toutes réserves, pas testé

Il vaut mieux éviter, quand c'est possible les Select qui ralentissent le code
Tu peux aussi remplacer Range("B44") par [B44]....

Code:
Sub USD()
'
' USD Macro
' Macro enregistrée le 04/07/2007 par Admin
'
' Touche de raccourci du clavier: Ctrl+Maj+W
'
ActiveSheet.Unprotect Password:="1234"
[H20:H43].NumberFormat = _
"_-[$$-409]* #,##0.000_ ;_-[$$-409]* -#,##0.000 ;_-[$$-409]* ""-""???_ ;_-@_ "
[J20:J46].NumberFormat = _
"_-[$$-409]* #,##0.00_ ;_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "
[B44:B46].Formula = "USD"
[C46].Select
ActiveSheet.Protect Password:="1234"
End Sub

A+
 
Dernière édition:
Re : Simplification de code

Bojour Jihem, JCGL, le forum


Quelques caractères de plus en moins

Je me demande si on peut pas ecrire

edit : [B44:B4]="USD" (cf ligne en bleu)
et
[H20:H43,J20:J46].NumberFormat = _
"_-[$$-409]* #,##0.000_ ;_-[$$-409]* -#,##0.000 ;_-[$$-409]* ""-""???_ ;_-@_ "​

Code:
[LEFT]Sub USD()
'
' USD Macro
' Macro enregistrée le 04/07/2007 par Admin
'
' Touche de raccourci du clavier: Ctrl+Maj+W
'
ActiveSheet.Unprotect Password:="1234"
[H20:H43"].NumberFormat = _
"_-[$$-409]* #,##0.000_ ;_-[$$-409]* -#,##0.000 ;_-[$$-409]* ""-""???_ ;_-@_ "
[J20:J46].NumberFormat = _
"_-[$$-409]* #,##0.00_ ;_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "
[B][COLOR=blue][B44].Formula = "USD"[/COLOR][/B]
[B][COLOR=blue][B45].Formula = "USD"[/COLOR][/B]
[B][COLOR=blue][B46].Formula = "USD"[/COLOR][/B]
[C46].Select
ActiveSheet.Protect Password:="1234"
End Sub[/LEFT]
 
Dernière édition:
Re : Simplification de code

Bonjour Jiheme, Jean Claude 🙂

encore un petit peu plus court...

Code:
Sub test()
ActiveSheet.Unprotect Password:="1234"
Range("H20:H43,J20:J46").NumberFormat = _
"_-[$$-409]* #,##0.000_ ;_-[$$-409]* -#,##0.000 ;_-[$$-409]* ""-""???_ ;_-@_ "
Range("B44:B46").Value = "USD"
ActiveSheet.Protect Password:="1234"
End Sub

bonne journée
@+

Edition : Aarf le format est different...Nécessite donc les 2 lignes de JC
 
Re : Simplification de code

Re,
Salut Pierrot 🙂 ,
Salut Staple 🙂 ,

Rafaichissez mes amis arf
J'ai édité😛

Encore plus court (hormis les commentaires...) ?

Code:
Sub USD()
'
' USD Macro
' Macro enregistrée le 04/07/2007 par Admin
'
' Touche de raccourci du clavier: Ctrl+Maj+W
'
ActiveSheet.Unprotect Password:="1234"
[H20:H43,J20:J46].NumberFormat = _
"_-[$$-409]* #,##0.000_ ;_-[$$-409]* -#,##0.000 ;_-[$$-409]* ""-""???_ ;_-@_ "
[B44:B46].Formula = "USD"
[C46].Select
ActiveSheet.Protect Password:="1234"
End Sub

A+
 
Dernière édition:
Re : Simplification de code

Bonjour à tous

Merci JCGL, Staple, Pierrot

JCGL ton premier code fonctionne sans problème, j'essaierais les autres ce soir.

En tous cas j'ai compris le principe, tout n'est pas perdu....

A bientôt

Jiheme
 
Re : Simplification de code

Re

edition: un derneir raccourcissement
Code:
''macro contient [SIZE="2"][B]279[/B][/SIZE] caractères (espaces compris)
'[B]265[/B] sans compter Sub ... End Sub
Sub Z() 
With ActiveSheet
.Unprotect "x"
[H20:H43].NumberFormat = _
"_-[$$-409]* #,##0.000_ ;_-[$$-409]* -#,##0.000 ;_- [$$-409]* ""-""???_ ;_-@_ "
[J20:J46].NumberFormat = _
"_-[$$-409]* #,##0.00_ ;_-[$$-409]* -#,##0.00 ;_-[$$-409]* ""-""??_ ;_-@_ "
[B44:B46] = "USD"
.Protect "x"
End With
End Sub









Ce qui donnerait (j'ai encore retiré cinq caractères!)
Code:
[LEFT]Sub UD()
With ActiveSheet
.Unprotect Password:="12"
[H20:H43,J20:J46].NumberFormat = "_-[$$-409]* #,##0.000_ ;_-[$$-409]* -#,##0.000 ;_-   [$$-409]* ""-""???_ ;_-@_ "
[B44:B46]="USD"
.Protect Password:="12"
End With
End Sub[/LEFT]


edition: a rajouter, modifier la ligne format [H20:H43] [J20:J46].
Merci pour ton oeil aiguiser Pierrot93
 
Dernière édition:
- 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

A
Réponses
7
Affichages
1 K
A
Réponses
13
Affichages
2 K
Réponses
1
Affichages
2 K
M
  • Question Question
Réponses
4
Affichages
1 K
MarcMad
M
C
Réponses
23
Affichages
4 K
Charles78
C
Réponses
5
Affichages
1 K
Réponses
15
Affichages
2 K
Compte Supprimé 979
C
Retour