< návrat zpět
MS Excel
Téma: převod z € na Kč ![rss](./plugins/templates/wall_2C/images/icons/rss.png)
Zaslal/a Lugr 15.1.2020 17:28
Dobrý den,
vytvořil jsem si své první makro. Vím, že je to amatérské.
Jen bych potřeboval poradit s jednou podmínkou.
"Když bude v buňce text, tak ...."
Sub kurz()
a = ActiveCell
b = Range("C2")
c = a * b * 1000
If a = "" Then
i = MsgBox("Vybraná buňka musí obsahovat data!", vbOKOnly + vbExclamation)
'když bude v ActiveCell jakýkoliv text
ElseIf a = Text Then
i = MsgBox("Vybraná buňka musí obsahovat číslici!", vbOKOnly + vbExclamation)
ElseIf b = "" Then
i = MsgBox("Zadejte kurz.", vbOKOnly + vbCritical, "POZOR!")
Else
i = MsgBox(Format(a * 1000, "#,##0" & " €") & " = " & Format(c, "#,##0.00" & " Kč"))
End If
End Sub
Děkuji za pomoc
Příloha:
45591_kurz.zip (16kB, staženo 18x)
JoKe(15.1.2020 20:40)#045592 ![avatar](./pictures/avatars/no-avatar.jpg)
...
'když bude v ActiveCell jakýkoliv text
ElseIf WorksheetFunction.IsText(a) Then
...
...
Else
'a až zde umístit výpočet
c = a * b * 1000
i = MsgBox(Format(a * 1000, "#,##0" & " €") & " = " & Format(c, "#,##0.00" & " Kč"))
...
citovat
![elninoslov](./pictures/avatars/5a6387658a0f4.jpg)
Keď skúsite Select Case nebude to prehľadnejšie?
Sub kurz()
Dim a, b, c As Double
a = ActiveCell
b = Range("C2")
Select Case True
Case IsEmpty(a): MsgBox "Vybraná buňka musí obsahovat data!", vbExclamation
Case Not IsNumeric(a): MsgBox "Vybraná buňka musí obsahovat číslici!", vbExclamation
Case IsEmpty(b): MsgBox "Zadejte kurz.", vbCritical, "POZOR!"
Case Else: c = a * b * 1000
MsgBox Format(a * 1000, "#,##0" & " €") & " = " & Format(c, "#,##0.00" & " Kč")
End Select
End Sub
Příloha:
45594_45591_kurz.zip (16kB, staženo 18x) citovat
Lugr(16.1.2020 8:12)#045595 ![Lugr](./pictures/avatars/5ea444280f10d.jpg)
Já jsem naprostý amatér co se týče makra.
Tohle co jste mi poslal, je už pro mě vyšší dívčí.
Ale moc děkuji, zase je to pecka.
Děkuji oběma
citovat
elninoslov(16.1.2020 10:07)#045597 ![elninoslov](./pictures/avatars/5a6387658a0f4.jpg)
Kľudne sa dá nahradiť toto
Case IsEmpty(a): MsgBox "Vybraná buňka musí obsahovat data!", vbExclamation
Case Not IsNumeric(a): MsgBox "Vybraná buňka musí obsahovat číslici!", vbExclamation
za toto
Case IsEmpty(a) Or Not IsNumeric(a): MsgBox "Vybraná buňka musí obsahovat číslici!", vbExclamation
pretože oba prípady, aj keď v bunke nič nieje, aj keď obsahuje nečíslo, môžu kľudne vypísať rovnakú hlášku.
Ale absolútne v pohode to môže byť pomocou If Then, prípadne ElseIf. Ide o to aby ste sa v tom v prvom rade vyznal Vy a vedel si to prípadne ošéfovať.
citovat
Lugr(16.1.2020 18:04)#045600 ![Lugr](./pictures/avatars/5ea444280f10d.jpg)
Jste profíci, je to vidět. Já se to učím pokus omyl a co tu od vás pochytím.
Děkuji moc za pomoc
citovat