Optimation code VBA

Bonjour tous le monde

Je développe une application de gestion des ventes de billets d'une entreprise.

J'explique, en fait je fais un filtre sur une feuille base nettoyée en fonction des éléments que l'utilisateur choisie à partir du formulaire accueil.

Puis je colle ces éléments dans une feuille brouillon, l'idée c'est de n'est pas avoir à à parcourir toute la feuille base nettoyée, mais seulement le cas ou le filtre doit retourner vide. Eh bien çà mouline assez longuement à mon avis avant d'alimenter les zones de textes sur le formulaire accueil.

Merci d'avance pour vos nombreuses réponses.

Sub total_vente_caisse_et_rendus_après_filtre()
Application.ScreenUpdating = False
'###################### A partir d'ici je calcule le total vente et le total caisse plus le total_rendus
    ' pour alimenter le formulaire acceuil.

   Dim tot_caisse As Double
    tot_caisse = 0
    Dim tot_vente As Double
    tot_vente = 0
    Dim lign As Integer
    lign = 3
    Sheets("Brouillon").Select

         'Condition pour prendre en compte uniquement le dernier conducteur filtré et la ou les dates correspondantes.
         If Sheets("Brouillon").Cells(4, 9) <> "" Then
           'je parcours la totalité des dates émanentes du filtre.
           Do
            lign = lign + 1
            tot_caisse = tot_caisse + Sheets("Brouillon").Cells(lign, 24)
            tot_vente = tot_vente + Sheets("Brouillon").Cells(lign, 22)

           Loop Until Sheets("Brouillon").Cells(lign + 1, 9) = ""
         Else
          tot_vente = 0
          tot_caisse = 0
        End If
    'j'alimente ensuite les zones de textes caisse et vente
    acceuil.zt_caisse_par_conducteur = tot_caisse & " €"
    acceuil.zt_vente_par_conducteur = tot_vente & " €"

   'jenlève le filtre sur impression caisse
   Sheets("Base_nettoyée").Range("$A$2:$W$50000").AutoFilter Field:=11
   Application.ScreenUpdating = True
End Sub

Bonjour,

A propos de cette partie de ton code, tu n'as pas besoin de

Sheets("Brouillon").Select

qui ralentit ton processus ...

Mais le plus important est de bien vérifier que ta Feuille Brouillon ne contient bien que la partie extraite de ta base de données ...

Bonjour James

Merci de votre réponse

Je supprimer la ligne et effectuer la vérification sur les données extraites tout est ok .

Mais le problème lui persiste?

Sinon , aurais tu une idée pour rendre rapide le chargement à l'ouverture de l'application?

Merci d'avance

Bonjour,

Je n'ai aucune idée de ton application ... mais une instruction souvent très efficace :

En début de code :

Application.Calculation = xlCalculationManual

et en fin de code :

Application.Calculation = xlCalculationAutomatic

Ok je vais essayer et puis je te ferai un retour.

Sinon l'instruction devra être utilisé en début de chaque sub ou bien à l'ouveruture de mon userform d'acceuil.

Sinon l'erreur

erreur système &h80004005(-2147467259). erreur non spécifiée,

vous en savez quelques chose ou pas?

J'ai regardé sur le net mais les réponses que j'ai trouvé ne me permettent pas de résoudre mon problème.

Merci d'avance.

Re,

Les instructions de Calcul sont essentiellement utiles pour accélérer les procédures lourdes ou complexes ...

Quant à debugger un code sans le voir ... ou à déterminer les erreurs qu'il contient ...

vraiment, je rêverai d'avoir ce talent ...!!!

Rechercher des sujets similaires à "optimation code vba"