Autres Les macros fonctionnent mais il y a mieux à faire je pense

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 !

un internaute

XLDnaute Impliqué
Bonjour le forum
Dans les 3 macros du fichier j'ai mis 3 lignes en commentaires pour pouvoir effacer le montant par exemple 99.45€ si je me suis trompe (cellule B4) feuille "MONTANT TOTAL FRAIS" sans effacer les semaines S1+S2+S3 etc...(cellule A4) ni la date des frais cellule C4 sinon tout s'efface à refaire ou ne pas enregistrer
Ces macros font le boulot mais ne me "plaise pas".... j'avais trouvé ça sur Google et bricolé ensuite
Y a t-il mieux à faire SVP
Merci pour vos éventuels retours
 

Pièces jointes

Bonjour à tous,
Ce ne sont que des appréciations personnelles mais bon, dans l'ordre des lignes de code :
VB:
Dim lig As Integer
Utiliser plutôt Long sur les ordinateurs actuels.
Code:
If Target.Count > 1 Then Exit Sub
Ne pas utiliser Exit Sub quand c'est possible.
Code:
If Not Intersect(Target, Range("B4:B20")) Is Nothing Then
Si plusieurs bloc If Peut-être priviliger un Select Case qui sera plus clair. De plus ici Range("B4:B20") fait référence à la feuille active, même si dans ce contexte ce n'est pas critique penser à prefixer le Range par le non de code de la feuille.
Code:
If Not Intersect(Target, Range("B4:B20")) Is Nothing Then
Apparemment vous travaillez avec un TS utilisez-le.
Code:
If Target = "" Then
Utiliser plutôt vbNullString en lieux et place de ""
Code:
On Error Resume Next
Penser à réactiver la gestion d'erreur avec On Error Goto 0
Code:
GoTo Sortie
Éviter les Goto qui datent de Quick Basic préférer les blocs If Then End If
Code:
Target = UCase(Format(Target, "dddd dd mmmm yyyy"))
Vous travailler sur des String donc preferer Ucase$ en lieux et place de Ucase Idem pour Format.
Code:
NumSem
Penser à déclarer vos variables et à leur donner des noms explicites. De même supprimer les variables déclarées mais non utilisées.
Code:
Sortie:
Penser à tout remettre en place Application.ScreenUpdating et Application.EnableEvents
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Sh As Worksheet
  Application.ScreenUpdating = False  'Rafraichissement écran
  For Each Sh In ThisWorkbook.Worksheets
    Sh.Select
    Range("A1").Select
  Next Sh
  Sheets(1).Select                    'Mettre Sheets(1).Select à cet endroit sinon il passe en revue toutes les feuilles
  Application.ScreenUpdating = True   'Rafraichissement écran
End Sub
A quoi c'est sensé servir ?

Et en régle générale : Ne pas mettre de ligne vide dans un tableau structuré, il gère les ajout très bien sans cela.
 
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
Retour