@@ProgramarExcel Hola Marc, espero que se encuentre bien. En cuanto al apoyo al canal no me cuesta nada y si me satisface poder ayudate aunque sea por un simple like. Un abrazo profesor y cuídese. 👍
Maestro excelente felicitaciones una pregunta yo tengo este codigo pero esto debo realizarlo varias veces y se me demora puede revisarlo gracias Private Sub Cmd_ocultar_filas_Click() 'Macro para ocultar filas Application.ScreenUpdating = False Hoja26.Activate On Error Resume Next Hoja52.Activate desde = Hoja52.Cells(117, 13) hasta = Hoja52.Cells(117, 14) Fila = 108 columna = 14 m = 11 'fila equipos n = 35 'fila salarios j = 50 'fila materiales k = 78 'fila transporte For i = desde To hasta Hoja26.Select ' Numero de filas del equipo fila_e = m Do While Hoja26.Cells(fila_e, 4) "" fila_e = fila_e + 1 Loop n_Filas_eq = fila_e - m ' MsgBox n_Filas_eq On Error Resume Next 'Numero de filas de equipos If n_Filas_eq < 8 Then n_Filas_eq = 0 Range(Cells(m + 7, 4), Cells(m + 17, 4)).Select 'EntireRow.Hidden = True For Each cell In Selection If cell.Value = "" Then cell.EntireRow.Hidden = True End If Next cell
ElseIf n_Filas_eq >= 8 Then n_Filas_eq = n_Filas_eq Range(Cells(m + n_Filas_eq, 4), Cells(m + 17, 4)).Select 'EntireRow.Hidden = True For Each cell In Selection If cell.Value = "" Then cell.EntireRow.Hidden = True End If Next cell End If ' ' 'Numero de filas de salarios fila_sa = n Do While Hoja26.Cells(fila_sa, 4) "" fila_sa = fila_sa + 1 Loop n_Filas_sa = fila_sa - n ' MsgBox n_Filas_sa If n_Filas_sa < 8 Then n_Filas_sa = 0 Range(Cells(n + 7, 4), Cells(n + 11, 4)).Select 'EntireRow.Hidden = True For Each cell In Selection If cell.Value = "" Then cell.EntireRow.Hidden = True End If Next cell
ElseIf n_Filas_sa >= 8 Then n_Filas_sa = n_Filas_sa Range(Cells(n + n_Filas_sa, 4), Cells(n + 11, 4)).Select 'EntireRow.Hidden = True For Each cell In Selection If cell.Value = "" Then cell.EntireRow.Hidden = thue End If Next cell End If ' 'Numero de filas de materiales fila_mat = j Do While Hoja26.Cells(fila_mat, 4) "" fila_mat = fila_mat + 1 Loop n_Filas_mat = fila_mat - j ' MsgBox n_Filas_mat If n_Filas_mat < 12 Then n_Filas_mat = 0 Range(Cells(j + 12, 4), Cells(j + 24, 4)).Select 'EntireRow.Hidden = True For Each cell In Selection If cell.Value = "" Then cell.EntireRow.Hidden = True End If Next cell
ElseIf n_Filas_mat >= 12 Then n_Filas_mat = n_Filas_mat Range(Cells(j, 4), Cells(j + 24, 4)).Select 'EntireRow.Hidden = True For Each cell In Selection If cell.Value = "" Then cell.EntireRow.Hidden = True End If Next cell End If ' 'Numero de filas de transporte fila_t = k Do While Hoja26.Cells(fila_t, 4) "" fila_t = fila_t + 1 Loop n_Filas_t = fila_t - k ' MsgBox n_Filas_t If n_Filas_t < 2 Then n_Filas_t = 0 Range(Cells(k + 2, 4), Cells(k + 11, 4)).Select 'EntireRow.Hidden = True For Each cell In Selection If cell.Value = "" Then cell.EntireRow.Hidden = True End If Next cell
ElseIf n_Filas_t >= 2 Then n_Filas_t = n_Filas_t Range(Cells(k + n_Filas_t, 4), Cells(k + 11, 4)).Select 'EntireRow.Hidden = True For Each cell In Selection If cell.Value = "" Then cell.EntireRow.Hidden = True End If Next cell End If m = m + 96 n = n + 96 j = j + 96 k = k + 96 Next i Application.ScreenUpdating = True Application.CutCopyMode = False End Sub gracias por darme una mano
Buenos días Marc, bien este segundo. Seguro que tienes más pendientes. Por eso no hago sugerencias por el momento. Un 👍 y un abrazo.
Hola Benito, Gracias por tu comentaro y constante apoyo al canal
@@ProgramarExcel Hola Marc, espero que se encuentre bien. En cuanto al apoyo al canal no me cuesta nada y si me satisface poder ayudate aunque sea por un simple like.
Un abrazo profesor y cuídese. 👍
como creo estos botones
Maestro excelente felicitaciones una pregunta yo tengo este codigo
pero esto debo realizarlo varias veces y se me demora puede revisarlo gracias
Private Sub Cmd_ocultar_filas_Click()
'Macro para ocultar filas
Application.ScreenUpdating = False
Hoja26.Activate
On Error Resume Next
Hoja52.Activate
desde = Hoja52.Cells(117, 13)
hasta = Hoja52.Cells(117, 14)
Fila = 108
columna = 14
m = 11 'fila equipos
n = 35 'fila salarios
j = 50 'fila materiales
k = 78 'fila transporte
For i = desde To hasta
Hoja26.Select
' Numero de filas del equipo
fila_e = m
Do While Hoja26.Cells(fila_e, 4) ""
fila_e = fila_e + 1
Loop
n_Filas_eq = fila_e - m
' MsgBox n_Filas_eq
On Error Resume Next
'Numero de filas de equipos
If n_Filas_eq < 8 Then
n_Filas_eq = 0
Range(Cells(m + 7, 4), Cells(m + 17, 4)).Select 'EntireRow.Hidden = True
For Each cell In Selection
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next cell
ElseIf n_Filas_eq >= 8 Then
n_Filas_eq = n_Filas_eq
Range(Cells(m + n_Filas_eq, 4), Cells(m + 17, 4)).Select 'EntireRow.Hidden = True
For Each cell In Selection
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next cell
End If
'
' 'Numero de filas de salarios
fila_sa = n
Do While Hoja26.Cells(fila_sa, 4) ""
fila_sa = fila_sa + 1
Loop
n_Filas_sa = fila_sa - n
' MsgBox n_Filas_sa
If n_Filas_sa < 8 Then
n_Filas_sa = 0
Range(Cells(n + 7, 4), Cells(n + 11, 4)).Select 'EntireRow.Hidden = True
For Each cell In Selection
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next cell
ElseIf n_Filas_sa >= 8 Then
n_Filas_sa = n_Filas_sa
Range(Cells(n + n_Filas_sa, 4), Cells(n + 11, 4)).Select 'EntireRow.Hidden = True
For Each cell In Selection
If cell.Value = "" Then
cell.EntireRow.Hidden = thue
End If
Next cell
End If
' 'Numero de filas de materiales
fila_mat = j
Do While Hoja26.Cells(fila_mat, 4) ""
fila_mat = fila_mat + 1
Loop
n_Filas_mat = fila_mat - j
' MsgBox n_Filas_mat
If n_Filas_mat < 12 Then
n_Filas_mat = 0
Range(Cells(j + 12, 4), Cells(j + 24, 4)).Select 'EntireRow.Hidden = True
For Each cell In Selection
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next cell
ElseIf n_Filas_mat >= 12 Then
n_Filas_mat = n_Filas_mat
Range(Cells(j, 4), Cells(j + 24, 4)).Select 'EntireRow.Hidden = True
For Each cell In Selection
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next cell
End If
' 'Numero de filas de transporte
fila_t = k
Do While Hoja26.Cells(fila_t, 4) ""
fila_t = fila_t + 1
Loop
n_Filas_t = fila_t - k
' MsgBox n_Filas_t
If n_Filas_t < 2 Then
n_Filas_t = 0
Range(Cells(k + 2, 4), Cells(k + 11, 4)).Select 'EntireRow.Hidden = True
For Each cell In Selection
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next cell
ElseIf n_Filas_t >= 2 Then
n_Filas_t = n_Filas_t
Range(Cells(k + n_Filas_t, 4), Cells(k + 11, 4)).Select 'EntireRow.Hidden = True
For Each cell In Selection
If cell.Value = "" Then
cell.EntireRow.Hidden = True
End If
Next cell
End If
m = m + 96
n = n + 96
j = j + 96
k = k + 96
Next i
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub
gracias por darme una mano
Hola como estás, lo anoto para verlo, porque tengo cientos, recuérdamelo en un par de días