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.
1 Respuesta
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.
- Compartir respuesta