Nebo i takhle:
Chtělo by to ještě ošetřit situaci, kdy někdo do sloupce zadá číslici místo písmena, což celé makro zbytečně komplikuje. Z tohoto důvodu je také vhodnější používat styl odkazu R1C1. Pak by to mohlo být takto:Kód:Option Explicit Dim sloupec1 As String, sloupec2 As String, radek1 As Integer, radek2 As Integer Sub makro() If radek1 = 0 Then radek1 = 10 radek2 = 200 sloupec1 = "A" sloupec2 = "C" End If Worksheets("List1").Activate znovu: Dim Dotaz, Dotaz2 On Error GoTo chyba radek1 = InputBox("Počáteční řádek?", "Počáteční řádek", radek1) radek2 = InputBox("Konečný řádek?", "Konečný řádek", radek2) sloupec1 = UCase(InputBox("Počáteční sloupec?", "Počáteční sloupec", sloupec1)) sloupec2 = UCase(InputBox("Konečný sloupec?", "Konečný sloupec", sloupec2)) Dotaz2 = MsgBox("Zvolený rozsah je " & sloupec1 & "-" & radek1 & ":" & sloupec2 & "-" & radek2, vbYesNo) If Dotaz2 = 7 Then GoTo znovu Range(sloupec1 & radek1 & ":" & sloupec2 & radek2).Select Exit Sub chyba: Dotaz = MsgBox("Zadali jste chybně údaj. Zadáte znovu?", vbYesNo) If Dotaz = 6 Then Resume Else Exit Sub End Sub
Kód:Option Explicit Dim radek1 As Integer, radek2 As Integer, sloupec1 As Integer, sloupec2 As Integer Sub makro() If radek1 = 0 Then radek1 = 10 radek2 = 200 sloupec1 = 1 sloupec2 = 3 End If Worksheets("List1").Activate znovu: Dim Dotaz, Dotaz2 On Error GoTo chyba radek1 = InputBox("Počáteční řádek?", "Počáteční řádek", radek1) radek2 = InputBox("Konečný řádek?", "Konečný řádek", radek2) sloupec1 = InputBox("Počáteční sloupec?", "Počáteční sloupec", sloupec1) sloupec2 = InputBox("Konečný sloupec?", "Konečný sloupec", sloupec2) Dotaz2 = MsgBox("Zvolený rozsah je R" & sloupec1 & "C" & radek1 & ":R" & sloupec2 & "C" & radek2, vbYesNo) If Dotaz2 = 7 Then GoTo znovu Range(Cells(radek1, sloupec1), Cells(radek2, sloupec2)).Select Exit Sub chyba: Dotaz = MsgBox("Zadali jste chybně údaj. Zadáte znovu?", vbYesNo) If Dotaz = 6 Then Resume Else Exit Sub End Sub





Odpověď s citací