Zjednodušení makra

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Zamčeno
macamaple
nováček
Příspěvky: 3
Registrován: 09 srp 2017 13:37

Zjednodušení makra

Příspěvek 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
a.mlady
nováček
Příspěvky: 32
Registrován: 28 bře 2013 11:37

Re: Zjednodušení makra

Příspěvek 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.
macamaple
nováček
Příspěvky: 3
Registrován: 09 srp 2017 13:37

Re: Zjednodušení makra

Příspěvek od macamaple »

Děkuji za pomoc.
Uživatelský avatar
elninoslov
Level 2.5
Level 2.5
Příspěvky: 386
Registrován: 12 čer 2013 23:40

Re: Zjednodušení makra

Příspěvek 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)")
macamaple
nováček
Příspěvky: 3
Registrován: 09 srp 2017 13:37

Re: Zjednodušení makra

Příspěvek od macamaple »

Jěště jednou všem děkuji.
Zamčeno

Zpět na „Kancelářské balíky“