Alleger le code...

deudecos

XLDnaute Impliqué
Salut a toutes et a tous,

Dans le fichier joint, j'ai cree un petit programme tout simple pour gerer les fournisseurs que je ne paie qu'en fin de mois (Tres rare en Roumanie !!!)
Et pour etre sur de ne pas avoir d'erreur de la part de leur service facturation, je prends bien soin de tout noter au jour le jour. (D'ou l'idee de ce programme :) )

En fait, il fonctionne tres bien, je n'ai pas le moindre probleme avec, si ce n'est... qu'au niveau programmation en vba, je suis reste assez "lourd" et j'aimerais apprendre a alleger mes formules et codes, seulement voila, j'ai besoin de vous pour ca...

Donc, si chacun y va de son petit commentaire, en vba comme pour les formules, j'en profiterais pour apprendre !

Bien entendu, je ne suis pas ni presse, ni meme dans la panade... J'ai meme tout mon temps !

Merci d'avance.

Bonne journee

Olivier

Ps. j'avais oublie de modifier le code de la fermeture de l'userfrom (Je sais qu'il y en a qui n'aiment pas trop mes fermetures...)
 

Pièces jointes

  • Deudecosbis.zip
    27.8 KB · Affichages: 30
Dernière édition:

porcinet82

XLDnaute Barbatruc
Re : Alleger le code...

Salut Olivier,

Je viens de jeter un oeil a ta petite appli et je ne suis pas sur que tu puisses alléger beaucoup ton code.
Tu peux éventuellement mettre quelques With :
Code:
With Sheets("Saisies")
    .Range("A" & L) = Saisie.Label1
    '...
End With
'ou
With Saisie
    .Height = 176.25
    '...
End With

J'ai également vue que tu avais le même code pour les boutons 1 et 2, tu pourais donc mettre ce code dans une macro et appeler la macro dans les boutons.

Une autre petite remarque, quand tu déclares Dim L, M, i As Integer seul i est déclaré en Integer, L et M sont déclaré en Variant

Voili, voilou,

@+
 

Luki

XLDnaute Accro
Re : Alleger le code...

Bonjour Deudecos,

Hormis quelques blocs with qui pourraient alléger, c'est plutôt light comme programme! :p


Code:
     Sheets("Saisies").Range("A" & L) = Saisie.Label1
    Sheets("Saisies").Range("B" & L) = "=month(A" & L & ")"
    Sheets("Saisies").Range("C" & L) = "=year(A" & L & ")"
    Sheets("Saisies").Range("D" & L) = Saisie.Fournisseurs
    Sheets("Saisies").Range("E" & L) = Saisie.Fournitures
    Sheets("Saisies").Range("F" & L) = CDbl(Saisie.Quantite.Value)
    Sheets("Saisies").Range("G" & L) = CDbl(Saisie.PrixUnitaire.Value)
    Sheets("Saisies").Range("H" & L) = CDbl(Saisie.Quantite.Value * Saisie.PrixUnitaire.Value)
peut-être réduit à

Code:
  With Sheets("Saisies")
    .Range("A" & L) = Saisie.Label1
    .Range("B" & L) = "=month(A" & L & ")"
    .Range("C" & L) = "=year(A" & L & ")"
    .Range("D" & L) = Saisie.Fournisseurs
    .Range("E" & L) = Saisie.Fournitures
    .Range("F" & L) = CDbl(Saisie.Quantite.Value)
    .Range("G" & L) = CDbl(Saisie.PrixUnitaire.Value)
    .Range("H" & L) = CDbl(Saisie.Quantite.Value * Saisie.PrixUnitaire.Value)
 End With

Et aussi, pas la peine de faire référence à ton userform dans son propre module.

Code:
 Private Sub CommandButton1_Click()
Saisie.Height = 176.25
Saisie.Width = 232.5
Saisie.StartUpPosition = 2

Saisie.Calendar1.Visible = True
Saisie.Calendar1.Value = Date
Saisie.CommandButton2.Visible = True
Saisie.CommandButton1.Visible = False

End Sub
peut se simplifier par
Code:
Private Sub CommandButton1_Click()
Height = 176.25
Width = 232.5
StartUpPosition = 2
Calendar1.Visible = True
Calendar1.Value = Date
CommandButton2.Visible = True
CommandButton1.Visible = False
End Sub
Voilà, bonne journée

Edit: Salut Romain, le plus rapide!
 

Staple1600

XLDnaute Barbatruc
Re : Alleger le code...

Bonjour


Voila ma proposition (un allègement plus que relatif
ton code étant déjà allègé non?)

Edit: sans avoir lu les réponses de Luki et de porcinet (bonjour à eux)

j'ai suivi à peu prés le même cheminement.

Comme quoi fréquenter ce forum, ça laisse des traces, et des façons de faire ;)
 
Dernière édition:

deudecos

XLDnaute Impliqué
Re : Alleger le code...

Salut Romain, Luc et Staple1600,

Je vous remercie tous les trois de vous etre penches sur mon machin...
Et meme si vous dites n'avoir pas fait de grosses modifs, j'ai deja pique des petites choses qui me permetrons de gagner du temps lors de l'ecriture, ce qui n'est pas negligeable !

Si jamais il vous venaient d'autres "trucs", n'hezitez pas a me le dire !

Bonne journee

Olivier
 

Discussions similaires

Réponses
10
Affichages
236

Statistiques des forums

Discussions
314 060
Messages
2 105 197
Membres
109 287
dernier inscrit
Pistol