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

Rechercher des sujets similaires à "comment simplifier code"