microhyd
31.07.16,11:49
Zdravim Vas,

Potrebujem trochu poradit s kodom, pretoze uz fakt neviem jak to napisat.

Ak podmienka = true, vykonaj slucku x krat po sebe a az POTOM znovu kontroluj podmienku.




Private Sub Worksheet_Change(ByVal Target As Range)

Dim x As Long
Dim j As Long
j = 10

Range("O6")=1

If Range("O6") = 1 Then

For x = 1 To j
Call Makro5
Next x



End If

End Sub



Dakujem za pomoc! :)
taiko
31.07.16,10:21
.
1. bolo by lepsie, keby si tu dal cely kod a zmen nazov otazky, aby vystihoval jej podstatu
2. ta podmienka sa ma kontrolovat kolko-krat. Tiez ma byt ta kontrola v nejakej slucke ?
3. co to je " citat kod zvrchu "?
microhyd
31.07.16,13:47
KOD:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim x As Long

If Range("O6") = 1 Then

For x = 1 To 5
Call Function()
Next x

End If

End Sub

Co potrebujem dosiahnut?
-Nech KOD precita IF jeden krat, pricom FOR je vykonana 5 krat

-Ak je splnena podmienka IF
-tak spusti slucku v ktorej je volana funkcia a to 5 krat po sebe
-a az potom znovu overila, ci IF je pravda, teda zacina sa kod citat od zaciatku(zvrchu)

Snad uz je to zrozumitelnejsie :)
taiko
31.07.16,14:38
a keby si pred IF podmienku dal while slucku a ukoncil ju za End If? Tym padom Ti to testovanie bude bezat do doby stanovenej while statementom.
microhyd
01.08.16,04:04
Sub Makrox()

Dim r As Integer
Dim i As Integer
i = 1
r = Range("B10").Value

If Range("O6").Value = 1 Then

Do While i <= r
Call Function()
i = i + 1
Loop

End If

End Sub

Ked to pouzijem ako makro, robi to presne tu pracu, ktoru ma. Problem nastava, ked to chcem pouzit v sheete tak, aby to slo automaticky. Vtedy neviem z akeho dovodu spusti slucku a opakuje ju omnoho viac krat, ako by malo.
Cize ako makro to mam, ale ako makro to prilis nepotrebujem :D
Potrebujem aby to bolo spustane automaticky bez mojho zasahu. Neviem ako sa z toho dostat, asi tam bude problem s tymi vecami ako "explicit" na sheete a do tych veci sa nerozumiem. Vlastne nerozumiem celemu VBA :D



Cize ak to zhrniem, potrebujem na sheete zavolat a vykonat makro RAZ, ked bola splnena podmienka. Nejak takto>

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("B100000").Value = 1 Then

Call makrox

End If

End Sub

Neviem preco to ako makro funguje, ale ako autopilot robi nezmysli.
taiko
01.08.16,04:32
hmmm, neurobil si to tak ako som pisal. Ten FOR loop si tam mal nechat a tu WHILE loop si mal dat pred if RANGE("06")
microhyd
01.08.16,04:33
Uz viem. Ja odstranujem riadky a tym padom dostavam hodnotu podmienky viac ako jeden krat! No, takze idem to vymysliet trochu inak :D
Dikes taiko za reakciu :)
Pekny den ti prajem
microhyd
01.08.16,10:11
Jo ale aj tento nedostatok ma trochu dalej od podstaty, uz som z toho poraidne pomyleny.
Potrebujem len
Ak podmienka = true, vykonaj slucku x krat po sebe a az potom znovu kontroluj podmienku.
To je cele.

taiko, je sice mile, a cenim si, ze si mi sem nieco napisal, ale keby som tomu rozumel, nepisal by som sem otazku.
Cize toto daj pred toto, toto posun tam a toto tam, to robim vlastne cely cas a nema to konca, pretoze stale dostavam to co nepotrebujem.

A este mi unika jedna vec... Preco mi to funguje ako makro bez problemov, ked tam by mal byt ten isty problem.

Asi si uvaziem slucku inu, tuto robim uz 25 hodinu a mam toho dost. Jedna primitivna slucka :(
microhyd
01.08.16,15:59
Tak som to vyriesil ako "skutocny odbornik" :D
Vymazal som podmienku v bunke, ktora to spustala a zapisal ju na koniec makra s tym, ze pokial makro bezi, tak v tej bunke vracia 0 a ked je makro na konci, vrati podmienku nazad do bunky :D
Zlatal som to jak totalny hotentot, ale aspon ze to funguje :D
Uz si dam len zajtra refresh a snad to bude slapat :)
microhyd
01.08.16,16:16
No a uz je spusteny aj timer a vsetko slape ako ma! HURAA :D

Stejne tak, dik moc taiko za reakcie! :)