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 !
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
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
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.
Bonjour Valtrase
Tu as certainement raison mais trop dur pour moi "nonagénaire"
Je pense que ça restera comme ça
En tout cas merci à toi
Bonne fin de WE
- 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