1.) Makro tedy umožní uživateli nastavit číslo sloupce s měrnými jednotkami, číslo sloupce s kontrolovanou cenou a číslo prvního kontrolovaného řádku.
2.) Dále bude od příslušného řádku kontrolovat, zda jsou zadány měrné jednotky, pokud ano, tak zkontroluje i správné zadání ceny (nezáporná, nenulová).
3.) Pokud bude cena ve špatném tvaru, tak umožní uživateli opravu hodnoty - InputBox nepůjde vypnout, dokud nebude hodnota správná.
4.) V tomto případě pak již nemusím nikam zapisovat, že se jedná o chybu, protože bude vždy opraveno...
P.
Možné řešení makrem:
Sub Kontrola_cen()
Dim sloupec_s_MJ As Integer
Dim sloupec_s_cenou As Integer
Dim prvni_radek_kontroly As Integer
Dim i As Long
Dim msg As Byte
sloupec_s_MJ = InputBox("Zadejte číslo sloupce s měrnými jednotkami:", "Nastavení makra")
sloupec_s_cenou = InputBox("Zadejte číslo sloupce s kontrolovanou cenou:", "Nastavení makra")
prvni_radek_kontroly = InputBox("Zadejte číslo prvního kontrolovaného řádku:", "Nastavení makra")
For i = prvni_radek_kontroly To 10000
If (Cells(i, sloupec_s_MJ) <> "") And (Cells(i, sloupec_s_cenou) <= 0) Then
Cells(i, sloupec_s_cenou).Select
Do Until Cells(i, sloupec_s_cenou).Value > 0
Cells(i, sloupec_s_cenou).Value = InputBox("Opravte hodnotu v buňce: " & Cells(i, sloupec_s_cenou).Address & "!", "Upozornění")
Loop
End If
Next i
msg = MsgBox("Všechny záznamy byly zkontrolovány a případně opraveny!", vbInformation)
End Subcitovat