Stránka 1 z 1

Zjednodušení makra

Napsal: 14 srp 2017 13:08
od macamaple
Dobrý den,

jsem začátečník a nedaří se mi zjednodušit následující makro:

If Worksheets("inventory").Range("A10") = 1 Then
a = Worksheets("inventory").Range("M10")
Worksheets("inventory").Range("M10") = a + Worksheets("inventory").Range("A10")
End If

If Worksheets("inventory").Range("A11") = 1 Then
a = Worksheets("inventory").Range("M11")
Worksheets("inventory").Range("M11") = a + Worksheets("inventory").Range("A11")
End If

If Worksheets("inventory").Range("A12") = 1 Then
a = Worksheets("inventory").Range("M12")
Worksheets("inventory").Range("M12") = a + Worksheets("inventory").Range("A12")
End If

If Worksheets("inventory").Range("A13") = 1 Then
a = Worksheets("inventory").Range("M13")
Worksheets("inventory").Range("M13") = a + Worksheets("inventory").Range("A13")
End If

If Worksheets("inventory").Range("A14") = 1 Then
a = Worksheets("inventory").Range("M14")
Worksheets("inventory").Range("M14") = a + Worksheets("inventory").Range("A14")
End If

až po řádek např. 1000. Skoušel jsem to vypsat ale VBA mi napsalo procedure too large.

Můžu poprosit o radu? Děkuji

Re: Zjednodušení makra

Napsal: 14 srp 2017 13:39
od a.mlady
Dobrý den, snad takto.

Kód: Vybrat vše

Sub plus()

For a = 0 To 999
If Worksheets("inventory").Range("A10").Offset(a, 0) = 1 Then
Worksheets("inventory").Range("M10").Offset(a, 0) = Worksheets("inventory").Range("M10").Offset(a, 0) + Worksheets("inventory").Range("A10").Offset(a, 0)
End If
Next a

End Sub


Případně jde i zrušit "Worksheets("inventory").", když to bude přímo napsáno v listu a ne v modulu.

Re: Zjednodušení makra

Napsal: 14 srp 2017 13:49
od macamaple
Děkuji za pomoc.

Re: Zjednodušení makra

Napsal: 14 srp 2017 15:21
od elninoslov
Veď k stĺpcu M iba pripočítate 1 ak je v A hodnota 1, teda stačí jeden riadok

Kód: Vybrat vše

Worksheets("inventory").Range("M10:M1000").Value2 = Evaluate("=('inventory'!A10:A1000=1)*('inventory'!M10:M1000+1)")

Re: Zjednodušení makra  Vyřešeno

Napsal: 14 srp 2017 15:28
od macamaple
Jěště jednou všem děkuji.