comment simplifier un code Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
cedcyr
Membre habitué
Membre habitué
Messages : 84
Inscrit le : 6 février 2013
Version d'Excel : 2007
Contact :

Message par cedcyr » 5 mars 2013, 23:45

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
Cedcyr

l'apprentis qui a de grandes oreilles mais qui perçevère
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'726
Appréciations reçues : 2
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 6 mars 2013, 00:05

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 ?
Image
Avatar du membre
cedcyr
Membre habitué
Membre habitué
Messages : 84
Inscrit le : 6 février 2013
Version d'Excel : 2007
Contact :

Message par cedcyr » 6 mars 2013, 00:24

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
Cedcyr

l'apprentis qui a de grandes oreilles mais qui perçevère
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'726
Appréciations reçues : 2
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 6 mars 2013, 00:31

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
Image
Avatar du membre
cedcyr
Membre habitué
Membre habitué
Messages : 84
Inscrit le : 6 février 2013
Version d'Excel : 2007
Contact :

Message par cedcyr » 6 mars 2013, 01:08

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
Cedcyr

l'apprentis qui a de grandes oreilles mais qui perçevère
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message