< návrat zpět

MS Excel


Téma: VBA pauza rss

Zaslal/a 19.4.2018 13:40

Zdravím,

Mám dotaz jde nějak pozastavit kód, který by pokračoval po kliknutí na tlačítko kterým byl před tím spuštěn?

díky.

Zaslat odpověď >

#040159
avatar
mohli by ste mat cuplik rozdeleny na

Select Case aStav
Case Is "1" : aStav1
Case Is "2" : aStav2
end select

premenu aStav by ste nastavovali pri starte dokumentu na 1 a pri skonceni procesu aStav1 by sa premena aStav = 2

tj. pri druhom stlaceni by islo druhe makrocitovat
#040161
avatar
Díky za reakci ale moc to nechápu 5.

potřebuji aby se v cyklu kód pozastavil já buď provedu nebo neprovedu změny v buňkách a pokračování spustil stejným tlačítkem jako poprvé. Potom by se zase v dalším cyklu pozastavil já zkontroloval jestli je co měnit a zase vyvolal pokračování kliknutím na pořád stejné tlačítko.citovat
#040162
avatar
kedze teraz uz aj ja rozumiem co presne potrebujete tak navrhujem ine riesenie a to taketo:

povedze ze v cykle kontrolujete 100 riadkov

tj.

For x = y to 100
if Zahada = true then
y = x
Exit For
end if
// process programu
next

- Premenna y by Bola ulozena v Cache
- Pri spusteni workbooku by sa y nastavil na hodnotu 1

ked bude treba mozem vytvorit prilohucitovat
#040163
avatar
prikladam prilohu
Příloha: zip40163_test.zip (16kB, staženo 39x)
citovat
#040165
avatar
v příloze od Palooo jsou třeba dvě malé úpravy, aby chodilo:
a) If Cells(x, 1).Text = "PRAVDA" Then -> přidány uvozovky aby šlo o text
b) na konci místo y=1 má být y = y + 1 -> pokračuje od následujícího řádku proti tomu kde zjistil "záhadu"citovat
#040167
avatar
upraveno na znovuprocházení

Sub Button1_Click()
Dim znovu
With ActiveWorkbook.Sheets("Sheet1")
For x = y To .Cells(.Rows.Count, "A").End(xlUp).Row
' Zahada
If Cells(x, 1).Text = "PRAVDA" Then
MsgBox ("Riadok " & x & " ma zahadu prosim opravte .... makro bude pokracovat od tohoto riadku dalej")
y = x
Exit For
End If
If x = .Cells(.Rows.Count, "A").End(xlUp).Row Then
znovu = MsgBox("Konec sloupku - pročítat znovu?", vbYesNo)
If znovu = vbYes Then
x = 1
Else
y = 0
Exit For
End If
End If
Next
y = y + 1
End With
End Subcitovat
#040168
avatar
Před pár týdny byl na fóru dotaz, kvůli kterému jsem použil dvě tlačítka Start a Stop pro spuštění a zastavení makra. Jeho vtip je v tom, že se v prováděcím cyklu makra Start nachází DoEvents. Tento příkaz dovolí makru Stop, aby ukončilo průběh cyklu v makru Start. Další stisk tlačítka Start obnoví chod prováděcího makra. Myslím, že ukázka tohoto chování dobře dokumentuje, jak to funguje.
Příloha: zip40168_losovani.zip (41kB, staženo 55x)
citovat
#040177
avatar
Nevidím tolik do problému, ale makro asi hledá 1.výskyt něčeho, co je potřeba opravit. Tady bych makro ukončil, provedl tu opravu a pustil makro celé znovu. Zase najde další 1.místo.. atd. problém vidím jen v rychlosti/velikosti souboru. Ale neřešil bych pozastavení.citovat
#040179
avatar
Díky za vaše reakce zatím se s tím nějak peru tak uvidím kam to dotáhnu případně vytvořím přílohu. ještě jednou díky.citovat
#040181
avatar
a este jedno hadanie v com by mohol byt Problem .... mozno ze sa jedna o error v cyklickom dosadzovani makier kde napr. integer premena je string. Potom takyto error by sa dal odchytit s:

On Error Resume Next
//Tu sa napise makro
Err.Number <> 0 Then
//co ma spravit ked je error
End Ifcitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje