Comment simplifier un code
bonsoir j'ai fait un code qui fonctionne mais je l'ai ecrit pour cinq ligne et si je veut le faire pour cinquante cela risque de faire long, et je suis sur que l'on peut faire plus simple pourrais t'on me montrer ?
F1.Range("R_total") = F1.Range("J15") + F1.Range("J16") + F1.Range("J17") + F1.Range("J18") + F1.Range("J19")
par quoi remplacer
F1.Range("J15") + F1.Range("J16") + F1.Range("J17") + F1.Range("J18") + F1.Range("J19")
pour obtenir le même resultat
merci
Bonsoir
cedcyr a écrit :je l'ai ecrit pour cinq ligne et si je veut le faire pour cinquante
Si tu expliques clairement ce que tu veux faire
La somme de 50 colonnes ?
toujour dans ma quette d'aprentissage, dans mon module recup que tu a deja vue j'ai une colonne de quantitées, (h), une colonne de prix unitaire, et une colonne total par ligne en l'ocurence (j). donc j'ai fait nue boucle qui me calcul h*i dans j et ceux pour chaque ligne puis dans ma case R_total je veut afficher la somme de j15 a j40 donc mon code qui fonctionne bien est le suivant
Sub recalculer()
Dim F1 As Worksheet
Dim i As Long, j As Long
Set F1 = Sheets("recup")
For i = 15 To 40
F1.Range("j" & i) = F1.Range("H" & i) * F1.Range("I" & i)
Next i
F1.Range("R_total") = F1.Range("J15") + F1.Range("J16") + F1.Range("J17") + F1.Range("J18") + F1.Range("J19") + F1.Range("J20") + F1.Range("J21") + F1.Range("J22") + F1.Range("J23") + F1.Range("J24") + F1.Range("J25") + F1.Range("J26") + F1.Range("J27") + F1.Range("J28") + F1.Range("J29") + F1.Range("J30") + F1.Range("J31") + F1.Range("J32") + F1.Range("J33") + F1.Range("J34") + F1.Range("J35") + F1.Range("J36") + F1.Range("J37") + F1.Range("J38") + F1.Range("J39") + F1.Range("J40")
F1.Range("R_net_a_payer") = F1.Range("R_total") - F1.Range("R_acompte") - F1.Range("R_tiers1")
End Sub
mais comme dirait l'autre c'est la seul facon qui ma permis de faire un code sans erreur et je me demandais si on pouvais ecrire le passage
F1.Range("R_total") = F1.Range("J15") + F1.Range("J16") + F1.Range("J17") + F1.Range("J18") + F1.Range("J19") + F1.Range("J20") + F1.Range("J21") + F1.Range("J22") + F1.Range("J23") + F1.Range("J24") + F1.Range("J25") + F1.Range("J26") + F1.Range("J27") + F1.Range("J28") + F1.Range("J29") + F1.Range("J30") + F1.Range("J31") + F1.Range("J32") + F1.Range("J33") + F1.Range("J34") + F1.Range("J35") + F1.Range("J36") + F1.Range("J37") + F1.Range("J38") + F1.Range("J39") + F1.Range("J40")
de façons plus simple
et pour repondre a une qestion pourquoi je n'est pas mis dans ma celule R_total de ma feuille recup =SOMME("J15:J40") c'est que chaque fois que je recharge le contenue avec mon module recherche ou si on modifi une ligne les formules sont effacer donc j'ai fait un bouton recalculer comme cela si il y a besion apres une mise a jours de tarif par exemple pour reactualiser un devis on clique sur recalculer et le tours est jouet.
merci
Bonjour
Et avec
F1.Range("R_total") = Application.Sum(F1.Range("J15:J40"))
Édit
Ton code complet à tester
With F1
With .Range("J15:J40")
.Formula = "=H15*I15"
.Value = .Value
End With
.Range("R_total") = Application.Sum(.Range("J15:J40"))
.Range("R_net_a_payer") = .Range("R_total") - .Range("R_acompte") - .Range("R_tiers1")
End With
fe me disait bien qu'il y avait beaucoup plus simple.
merci beaucoup ca fonction et c'est rentrée au milieu de mes neurones pour la prochaine fois