Ocultar columnas y filas con vba

Estoy en lo siguiente, utilice el grabador de macros para ocultar y mostrar filas y columnas. Estas acciones las ejecuto desde botones. El código resultante es grande y lento en su ejecución. Puede alguien compartir alguna sugerencias simplificar dicho código.

Respuesta
1

No dejaste tu macro... Si es demasiado extensa como para copiarla aquí, enviame tu libro a alguno de mis correos que aparecen en sitio que dejo al pie (generalmente el corrector de aquí me cambia los textos pero es algo como: cibersoft punto arg de gmail.com. Reemplaza el texto 'punto' por el caracter y 'de' por la arroba ;)

¡Gracias! te envie el archivo por correo....

Sub ConciliacionOperacionesBancarias()
'
' ConciliacionOperacionesBancarias Macro
'
Sheets("BDVOUCHER").Select
ActiveWindow.SmallScroll ToRight:=12
Range("TBVOUCHER[FECHA]").Select
ActiveWorkbook.Worksheets("BDVOUCHER").ListObjects("TBVOUCHER").Sort.SortFields _
.Clear
ActiveWorkbook.Worksheets("BDVOUCHER").ListObjects("TBVOUCHER").Sort.SortFields _
.Add2 Key:=Range("TBVOUCHER[FECHA]"), SortOn:=xlSortOnValues, Order:= _
xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("BDVOUCHER").ListObjects("TBVOUCHER").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("T4").Select
ActiveWindow.SmallScroll ToRight:=3
Rows("2:2").Select
Selection.EntireRow.Hidden = True
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
ActiveSheet.ListObjects("TBVOUCHER").Range.AutoFilter Field:=36, Criteria1 _
:="<>"
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
Columns("B:M").Select
Selection.EntireColumn.Hidden = True
Columns("O:S").Select
Selection.EntireColumn.Hidden = True
Columns("V:W").Select
Selection.EntireColumn.Hidden = True
Columns("AB:AJ").Select
Selection.EntireColumn.Hidden = True
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 14
Range("Z4").Select
ActiveSheet.ListObjects("TBVOUCHER").ShowTotals = True
Range("N4").Select
End Sub
Sub Regresar_A_Hoja_Conciliacion()

'Regresar_A_Hoja_Conciliacion Macro

ActiveSheet.ListObjects("TBVOUCHER").Range.AutoFilter Field:=36
Rows("1:3").Select
Selection.EntireRow.Hidden = False
Range("Z6").Select
ActiveSheet.ListObjects("TBVOUCHER").ShowTotals = False
Columns("A:AK").Select
Range("AK1").Activate
Selection.EntireColumn.Hidden = False
Range("B4").Select
ActiveWindow.SmallScroll ToRight:=4
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 25
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
Sheets("Conciliacion").Select
Range("A1").Select
End Sub
Sub ImportarDatosConciliacionBanco()
'
' ImportarDatosConciliacionBanco Macro
'

'
Application.CutCopyMode = False
Sheets("BDVOUCHER").Range("TBVOUCHER[#All]").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Range("Conciliacion!Criteria"), CopyToRange:= _
Range("Conciliacion!Extract"), Unique:=False
ActiveWindow.SmallScroll Down:=-9
ActiveWorkbook.Save
ActiveSheet.Shapes.Range(Array("Rounded Rectangle 2")).Select
Selection.OnAction = "ImportarDatosConciliacionBanco"
Range("I11").Select
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("BDVOUCHER").Select
Range("A4").Select
ActiveWindow.SmallScroll Down:=-69
Range("AN3").Select
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Conciliacion").Select
ActiveWindow.SmallScroll Down:=-12
End Sub

No recibí tu libro pero aquí te dejo las macros limpias de instrucciones innecesarias, como el movimiento del scroll para pasar de celda en celda, o el estar seleccionando antes de ocultar/mostrar rangos.

Sub ConciliacionOperacionesBancarias()
'
' ConciliacionOperacionesBancarias Macro
Application.CutCopyMode = False
Sheets("BDVOUCHER").Select
Range("TBVOUCHER[FECHA]").Select
ActiveWorkbook.Worksheets("BDVOUCHER").ListObjects("TBVOUCHER").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("BDVOUCHER").ListObjects("TBVOUCHER").Sort.SortFields _
    .Add2 Key:=Range("TBVOUCHER[FECHA]"), SortOn:=xlSortOnValues, Order:= _
    xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("BDVOUCHER").ListObjects("TBVOUCHER").Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
Range("T4").Select
Rows("2:2").EntireRow.Hidden = True
ActiveSheet.ListObjects("TBVOUCHER").Range.AutoFilter Field:=36, Criteria1:="<>"
Columns("B:M").EntireColumn.Hidden = True
Columns("O:S").EntireColumn.Hidden = True
Columns("V:W").EntireColumn.Hidden = True
Columns("AB:AJ").EntireColumn.Hidden = True
Range("Z4").Select
ActiveSheet.ListObjects("TBVOUCHER").ShowTotals = True
Range("N4").Select
End Sub
Sub Regresar_A_Hoja_Conciliacion()
'Regresar_A_Hoja_Conciliacion Macro
Application.CutCopyMode = False
ActiveSheet.ListObjects("TBVOUCHER").Range.AutoFilter Field:=36
Rows("1:3").EntireRow.Hidden = False
Range("Z6").Select
ActiveSheet.ListObjects("TBVOUCHER").ShowTotals = False
Columns("A:AK").EntireColumn.Hidden = False
Range("B4").Select
Sheets("Conciliacion").Select
Range("A1").Select
End Sub
Sub ImportarDatosConciliacionBanco()
' ImportarDatosConciliacionBanco Macro
'
Application.CutCopyMode = False
Sheets("BDVOUCHER").Range("TBVOUCHER[#All]").AdvancedFilter Action:= _
    xlFilterCopy, CriteriaRange:=Range("Conciliacion!Criteria"), CopyToRange:= _
    Range("Conciliacion!Extract"), Unique:=False
ActiveWorkbook.Save
ActiveSheet.Shapes.Range(Array("Rounded Rectangle 2")).Select
Selection.OnAction = "ImportarDatosConciliacionBanco"
Range("I11").Select
´
Sheets("BDVOUCHER").Select
Range("AN3").Select
Sheets("Conciliacion").Select
Range("A1").Select
End Sub

Quizás todavía se puede suprimir alguna línea pero sin probar las macro prefiero dejarlas como están. 

Sdos!

En video 11 de mi canal comento acerca de mejorar códigos evitando pasos innecesarios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas