Hola Brian, te doy una orientación inicial. En primer lugar crea un proyecto con un formulario y un label denominado Label1.
Luego podríamos partir del código que te indico más abajo. A partir de aquí habría que pensar si usar UDT (User Defined Types de Visual Basic) o si trabajarlo todo con arrays (por ejemplo un array de coste asociado a la mesa, un array de estado de la mesa como ocupada o libre, etc.). Elige una opción, de las que te he indicado o la que se te ocurra como mejor y trata de desarrollar el código. Cuando hayas desarrollado algo pega el código que tengas y lo revisamos y tratamos de mejorar o completar. Saludos
Option Base 1
Dim i%, j%, k%
Dim mesa() As Integer
Dim numeroMesasMaxSector As Integer
Const numeroDeSectores As Integer = 2
Private Sub Form_Load()
numeroMesasMaxSector = 10 'Suponemos que hay 10 mesas máximo por sector, total máximo 20 mesas
ReDim mesa(numeroMesasMaxSector, numeroDeSectores) 'Primer indice: numero de mesa, segundo índice sector (No fumador=1, Fumador=2)
mesa(1, 1) = 4 'Interpretación: la mesa 1 del sector 1 tiene capacidad para 4 personas
mesa(2, 1) = 2
mesa(3, 1) = 5
mesa(1, 2) = 2 'Interpretación: la mesa 1 del sector 2 tiene capacidad para 2 personas
mesa(2, 2) = 7
mesa(3, 2) = 3
mesa(4, 2) = 6
mesa(5, 2) = 5
Label1.Caption = ""
i = 1
j = 1
Do While j <= numeroDeSectores
Do While i <= numeroMesasMaxSector And mesa(i, j) <> 0
Label1.Caption = Label1.Caption & "La mesa " & i & " del sector" & j & " tiene capacidad para " & mesa(i, j) & " comensales" & vbCrLf
i = i + 1
Loop
i = 1
j = j + 1
Loop
End Sub