< návrat zpět
MS Excel
Téma: převod z € na Kč
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 ...
'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
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 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 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 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