Detener macro para que usuario aporte información

Buenas. Tengo una base de datos en Excel que recoge los gastos de una organización, se requiere mensualmente informar los resúmenes de gastos. He colocado un filtro y con la opción de Subtotales encuentro la información, pero quiero hacerlo más automatizado de forma tal que una macro seleccione el rango de criterio y no se como colocar una orden que detenga la macro y pida la información al usuario del mes (los meses están expresados en números) que se requiere. Anexo el código de la macro que diseñé. Gracias por su colaboración.
Macro5 Macro
'' Acceso directo: CTRL+x
' Genera reporte de gastos por mes
ActiveSheet.Range("$B$3:$M$279").AutoFilter Field:=12, Criteria1:="2"
Range("J3").Select
ActiveWorkbook.Worksheets("Hoja1").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Hoja1").AutoFilter.Sort.SortFields.Add Key:=Range( _
"J3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Hoja1").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("J2").Select
End Sub

1 Respuesta

Respuesta
1
A simple vista tu macro realiza el filtrado por un criterio con valor 2.
Si este será el nro de mes y necesitás que el usuario puede ingresarlo, agregá estas líneas iniciales:
Sub MacroFiltrado()
ind = 0
'se solicita el nro de mes hasta que ingrese un nro valido o cancele la ventana
While ind = 0
nromes = InputBox("INgresa nro de mes a filtrar")
If nromes = "" Then Exit Sub  'canceló el proceso
If nromes >= 1 And nromes <= 12 Then
'el nro de mes es correcto y finalizará el bucle
ind = 1
End If
Wend
ActiveSheet.Range("$B$3:$M$279").AutoFilter Field:=12, Criteria1:=Val(nromes)

'sigue tu rutina
End Sub
Sdos
Elsa
Los mejores manuales para aprender macros:
http://aplicaexcel.galeon.com/manuales.htm

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas