Simplification macro

16elec.xlsm (33.35 Ko)

Bonjour,

Dans mon fichier, j'ai une macro Recherche simple, par contre la macro Totaux (multiplication ou sommeprod) est très longue,

y aurait-il un moyen de la raccourcir? Il y a environ 9000 Totaux à effectuer!

Je vous en remercie

Bonjour

En introduisant quelques boucles

Sub Totaux()
'Macro 2012m10
Dim J As Long

  Sheets("Ouvrages").Select

  For J = 2 To 24 Step 2
    Cells(J, "H") = Cells(J + 1, "F") * Cells(J + 1, "G")
  Next J

  For J = 26 To 41 Step 3
    Cells(J, "H") = Application.SumProduct((Range(Cells(J + 1, "F"), Cells(J + 2, "F"))), _
                                           (Range(Cells(J + 1, "G"), Cells(J + 2, "G"))))
  Next J

  For J = 44 To 54 Step 2
    Cells(J, "H") = Cells(J + 1, "F") * Cells(J + 1, "G")
  Next J

  For J = 56 To 84 Step 4
    Cells(J, "H") = Application.SumProduct(Range(Cells(J + 1, "F"), Cells(J + 3, "F")), _
                                           Range(Cells(J + 1, "G"), Cells(J + 3, "G")))
  Next J

End Sub

J'ai testé la macro, ça me répond "erreur de compilation"?

Bonjour

Je viens de tester pas de soucis

Quelle ligne est en défaut ?

Quel message d'erreur exactement ?

Soit tu joins ton fichier en défaut soit une copie d'écran quand tu as ton erreur (pas sur que ça aide )

14ada.xlsm (34.13 Ko)

Je t'envoie le fichier. Je l'ai appelé ADA

Bonjour

Bizarre comme erreur

Une m...e devant le mot Sheets

J'ai effacé le début de ligne (vide en apparence) et plus de soucis

12ada-retour.xlsm (30.73 Ko)

Le total se fait; mais s'arrête au total 88!

Bonjour

Ta macro aussi et je me suis basé dessus

S'il n'y a que ce calcul en plus rajoutes en fin de macro

Range("H88") = Application.SumProduct((Range("F89:F90")), (Range("G89:G90")))

Pour info : L'erreur est provoquée par un caractère (Espace insécable - Espace shifftée ) au code de 160

Le but c'est de faire environ 9000 totaux, comment intégrer cela dans la macro,

la macro Recherche vient de toi, elle est efficace, la même pour les totaux serait bien.

Bonjour

messondewez a écrit :

Le but c'est de faire environ 9000 totaux, comment intégrer cela dans la macro,

Cela va être dur à simplifier

Tu as des calculs différents mélangés

Si tu as la possibilité de regrouper les calculs par catégorie (1 seule multiplication, sommeprod sur 2 lignes,sommeprod sur 3 lignes etc...)

On pourrait gagner en écriture

Ensuite en étudiant les caractéristiques du fichier on pourrait peut-être trouver une méthode qui effectuera les calculs

Mais je pense que cela serait au détriment du temps

A voir

J'ai rajouté la ligne Range et j'ai fait une dizaine de totaux, cela fonctionne.

Je t'en remercie.


J'ai fait une dizaine de lignes Range, les totaux s'effectuent.

Je te remercie.

Rechercher des sujets similaires à "simplification macro"