Stránka 1 z 1

Makro - spustit pod podmínkou  Vyřešeno

Napsal: 08 pro 2014 19:03
od Transmit
Dobrý den,

poradil by někdo, prosím, jak nastavit, aby se makro spouštělo pouze, pokud daná buňka obsahuje hodnotu?
V tuto chvíli spouštím makro při již označeném celém řádku. Řádek s daty makro překopíruje do požadovaného formuláře a ten už si data roztřídí.
Potřebuji docílit toho, aby ve chvíli, kdy si označím celý řádek a následně chci spustit makro, bylo makro podmíněno tím, že pokud například v x-tém sloupci označeného řádku není vepsaná hodnota, makro vyhodí msgbox "Chybí data." a makro se nespustí.
Jedná se vždy o jiný řádek. Pouze sloupec v označeném řádku je vždy stejný. Např. sloupec "J".

Děkuji předem za jakoukoliv odpověď.
Štěpán

Re: Makro - spustit pod podmínkou

Napsal: 08 pro 2014 22:17
od Azuzula
Ahoj,
na začátek makra které spouštíš vlož následující kód a uprav si jakou "hodnotu" má testovat a číslo sloupku (teď je 10tj. sloupec J)

Kód: Vybrat vše

If Cells(Selection.Row, 10) <> "testovaná hodnota" Then
    MsgBox "Chybí data"
    End
End If

Re: Makro - spustit pod podmínkou

Napsal: 09 pro 2014 07:07
od eLCHa
@Azuzula

Používání End ve VBA se nedoporučuje. Pokud už to chcete napsat tak, jak to máte, použijte Exit Sub.

Kód: Vybrat vše

Sub Test1()
  Application.EnableEvents = False
  Call Test2
  Application.EnableEvents = True
End Sub

Sub Test2()
  Application.ScreenUpdating = False
  Call Test3
  Application.ScreenUpdating = True
End Sub

Sub Test3()
  End
End Sub

Odkrokujte si tento kód od procedury Test1
Potom přepište End na Exit Sub o odkrokujte znova.
Toto je jen v rychlosti, co mně napadlo - kdybych přemýšlel déle, napadnou mně nebezpečnější věci - ale na ukázku by to mělo stačit

Re: Makro - spustit pod podmínkou

Napsal: 09 pro 2014 08:23
od Transmit
Ahoj,

díky za reakce. Nevěděl jsem si rady s odkazem na buňku v desátém sloupci. Makro jsem zapsal takto a vše funguje.

Kód: Vybrat vše

If Cells(Selection.Row, 10) = "" Then
MsgBox "Chybí data."
Else
Application.Run "vytvor_formular1"
End If
End Sub