Poradna - Určení podmínky pro spuštění Makra
hlavní kategorie | zpět | + odpovědět na toto témaUrčení podmínky pro spuštění Makra - diskuze na toto téma |
Dobrý den, sháním pomoc, pro mnohé z Vás asi snadnou, ale řeším problém:
- mám v excel tabulce tlačítko, které spouští makro ( to makro mi ukládá, zapisuje na jiný list a po uložení smaže hodnoty )
- potřebuji zajist, aby se to makro nespustilo a nejlíp vyhodilo chybové hlášení v případě, že buňka E16=NEPRAVDA. V případě, že buňka E16=PRAVDA, makro se dá spustit.
To je vše, snad mi někdo pomůže, moc děkuji za jakoukoliv radu. Možností je vícero, viz soubor. Buď na začátku makra testovat hodnotu buňky E16 a pokud nevyhovuje opustit makro, nebo na základě hodnoty buňky E16 povolit nebo zakázat funkčnost tlačítka, které makro spouští.
V souboru buňka A1=1 -> E16 = PRAVDA jinak NEPRAVDA Odpověď Pane Lobo, jste skvělý, moc děkuji, to je úplně přesně co potřebuji!!! Opravdu si vážím, že někdo takhle nezjištně pomáhá! Velké díky! Kdybych Vám mohl někdy pomoct, jsem strojař, ozvěte se na devata2003@seznam.cz. Hezký den Odpověď Pane Lobo, omlouvám se ještě jednou, ale nevím co je špatně. Přikládám soubor, kde mám tlačítko ale když k němu přiřadím makro2 které je u toho, tak mi to háže chybu v tom zápisu makra. Ale samo o sobě to makro funguje, zapisuje mi kalkulaci na jiný list. Mohl byste prosím na to mrknout jestli Vás nenapadne, kde je chyba? Potřebuji, aby se spustilo to Makro kliknutím na tlačítko a to jen v případě, že E16 bude PRAVDA, jinak chyba. Moc děkuji a omlouvám se za otravování. Odpověď Ahoj, na netu si tykáme. Tedy bez toho pane :-). Jinak díky za nabídku protislužby. Kvůli tomu to nedělám, ale nabídka potěší. Nevím jaká forma přerušení makra byla požadována. Udělal jsem obě + do kódu doplněn zákaz překreslování obrazovky, aby nedocházelo k blikání při běhu makra. Možná by stálo za to ten kód upravit, aby se hodnoty do dalšího listu propisovaly bez kopírování.
Odpověď V souboru doplněno makro "evidence", které vkládá hodnoty přímo bez kopírování. Odpověď Ja by som aj tie Offset-y vynechal:
Sub Evidence2()
With List1
If .Range("E16").Value = False Then
MsgBox "Nejsou vyplněna všechna požadovaná pole. Kopírování bude přerušeno!" & vbNewLine & _
"Vyplňte požadovaná pole a akci opakujte!", vbCritical, "VAROVÁNÍ"
Exit Sub
End If
If Not IsEmpty(List2.Range("A3").Value) Then List2.Range("A3").EntireRow.Insert CopyOrigin:=xlFormatFromRightOrBelow
List2.Cells(3, 1).Resize(, 9).Value2 = Array(.Range("C6").Value, .Range("C4").Value, .Range("C5").Value, .Range("C12").Value, .Range("C13").Value, .Range("H6").Value, .Range("H9").Value, .Range("H11").Value, .Range("C2").Value)
.Range("C4:C15,H11").ClearContents
End With
End Sub
Odpověď Formátovanie by tu mali podstatne prekopať ... Prikladám 2 príklady. Evidence2 - zapisuje naraz, teda nie po jednom údaji. Evidence - zapisuje aj číta naraz a nepotrebujete bunku E16. Odpověď Přátelé, vy se mi snad zdáte!!! Obrovské poděkování, nemám slov. Je to naprosto dokonalé, nabídka protislužby (něco vysoustružit, ofrézovat) platí a je časově neomezená, budu rád nápomocen!!! Vím, že to děláte pro zábavu, ale moc jste mi pomohli. Upřímný DÍK!!!! Přeji příjemné Vánoce, Luboš ( devata2003@seznam.cz) Odpověď |