reduire le volume du code

BIL boud

XLDnaute Occasionnel
bonjour

jai mis un code pour faire la somme
voici le code
VB:
Range("b2") = Range("w2") + Range("w6") + Range("w10") + Range("w14") + Range("w18") + Range("w22") + Range("w26") + Range("w30") + Range("w34") + Range("w38") + Range("w42")
Range("b3") = Range("w3") + Range("w7") + Range("w11") + Range("w15") + Range("w19") + Range("w23") + Range("w27") + Range("w31") + Range("w35") + Range("w39") + Range("w43")
Range("b4") = Range("w4") + Range("w8") + Range("w12") + Range("w16") + Range("w20") + Range("w24") + Range("w28") + Range("w32") + Range("w36") + Range("w40") + Range("w44")
Range("b5") = Range("w5") + Range("w9") + Range("w13") + Range("w17") + Range("w21") + Range("w25") + Range("w29") + Range("w33") + Range("w37") + Range("w41") + Range("w45")


Range("c2") = Range("x2") + Range("x6") + Range("x10") + Range("x14") + Range("x18") + Range("x22") + Range("x26") + Range("x30") + Range("x34") + Range("x38") + Range("x42")
Range("c3") = Range("x3") + Range("x7") + Range("x11") + Range("x15") + Range("x19") + Range("x23") + Range("x27") + Range("x30") + Range("x35") + Range("x39") + Range("x43")
Range("c4") = Range("x4") + Range("x8") + Range("x12") + Range("x16") + Range("x20") + Range("x24") + Range("x28") + Range("x30") + Range("x36") + Range("x40") + Range("x44")
Range("c5") = Range("x5") + Range("x9") + Range("x13") + Range("x17") + Range("x21") + Range("x25") + Range("x29") + Range("x30") + Range("x37") + Range("x41") + Range("x45")

Range("d2") = Range("y2") + Range("y6") + Range("y10") + Range("y14") + Range("y18") + Range("y22") + Range("y26") + Range("y30") + Range("y34") + Range("y38") + Range("y42")
Range("d3") = Range("y3") + Range("y7") + Range("y11") + Range("y15") + Range("y19") + Range("y23") + Range("y27") + Range("y30") + Range("y35") + Range("y39") + Range("y43")
Range("d4") = Range("y4") + Range("y8") + Range("y12") + Range("y16") + Range("y20") + Range("y24") + Range("y28") + Range("y30") + Range("y36") + Range("y40") + Range("y44")
Range("d5") = Range("y5") + Range("y9") + Range("y13") + Range("y17") + Range("y21") + Range("y25") + Range("y29") + Range("y30") + Range("y37") + Range("y41") + Range("y45")

Range("e2") = Range("z2") + Range("z6") + Range("z10") + Range("z14") + Range("z18") + Range("z22") + Range("z26") + Range("z30") + Range("z34") + Range("z38") + Range("z42")
Range("e3") = Range("z3") + Range("z7") + Range("z11") + Range("z15") + Range("z19") + Range("z23") + Range("z27") + Range("z30") + Range("z35") + Range("z39") + Range("z43")
Range("e4") = Range("z4") + Range("z8") + Range("z12") + Range("z16") + Range("z20") + Range("z24") + Range("z28") + Range("z30") + Range("z36") + Range("z40") + Range("z44")
Range("e5") = Range("z5") + Range("z9") + Range("z13") + Range("z17") + Range("z21") + Range("z25") + Range("z29") + Range("z30") + Range("z37") + Range("z41") + Range("z45")


est il possible de faire une boucle pour alleger ce code
sachant que je vais utiliser plusieurs fois dans la mm procedure et je rsique davoir le message d'erreur "procedure trop grande"

jai essaye de faire une boucle while pour range("b2") mais ca ne marche pas

Code:
dim k as integer
dim nb_li as integer


k = 0
nb_li = Range("w42").Row

While nb_li <= 42

Range("b2") = Application.sum(Range("w2").offset(k, 0).Value)

Wend
k = k + 4
 
Dernière édition:

BIL boud

XLDnaute Occasionnel
Mais de cette maniere a chaque fois que je clique sur le bouton pour excuter le code les formules sont suprimees
excusesz moi c moi qu me suis trempe ,jai oublie d'enleve le code
oui effivement ca marche bien

tt fois peut on ajouter une condition que si par exempele B2 = 0 elle va pas afficher 0 mais plutot une cellule vide , mm cas pour tt les autres cellules si ell sont vide

merci
 

zebanx

XLDnaute Accro
Bonjour à tous,

Avec un UDF et une macro associée à appeler (éventuellement) dans un code principal.

A vous BillBoud de modifier les paramètres (cellule de départ, step et nombre de répétitions) & éventuellement de coller un .value si vous ne voulez pas laisser apparaitre la formule.

@+
 

Pièces jointes

  • udf_addition.xlsm
    28.9 KB · Affichages: 5
Dernière édition:

BIL boud

XLDnaute Occasionnel
Bonjour à tous,

Avec un UDF et une macro associée à appeler (éventuellement) dans un code principal.

A vous BillBoud de modifier les paramètres (cellule de départ, step et nombre de répétitions) & éventuellement de coller un .value si vous ne voulez pas laisser apparaitre la formule.

@+


bonjour
merci ca fonctionne bien sur la partie que je voulais sauf que je voulais le faire aussi pour les autre range de W mais je nai pas reussi (jai pas bien compris le code )

merci pour votre aide généreuse
 

Statistiques des forums

Discussions
312 176
Messages
2 085 959
Membres
103 061
dernier inscrit
Zebor