Necesito ayuda con esta macro

quisiera por favor me ayudaran en cuanto a que cuando ejecuto esta macro me sombrea en amarillo la linea que he colocado en negrita y he subrayado, la función de la macro es ocultar pestañas en el libro de excel

Sub ocultar_pestanas()
'ORDEN PARA ESCONDER LAS PESTAÑAS DE LAS HOJAS QUE NO ESTÁN EN USO
Dim M As Long

Dim L As Long

Application.ScreenUpdating = False

Num_Partidas = Hoja1.Cells(20, 9).Value
ActiveWorkbook.Unprotect ("151152")

For M = 1 To Sheets.Count

Sheets(M).Visible = True

Next
For L = Num_Partidas + 4 To Sheets.Count

Sheets(L).Visible = False

Next
Num_Partidas = Hoja1.Cells(20, 9).Value
'' ESTA OPERACIÓN COLOCARA EL VALOR 1, EN HOJAS PRESUPUESTO Y RENDIMIENTOS '' A LAS FILAS QUE SERÁN Y NO TOMADAS EN CUENTA PARA LA SUMA
Sheets(2).Select

ActiveSheet.Unprotect password:="151152"
For j = 1 To Num_Partidas

Hoja2.Cells(j + 13, 1).Value = 1

Next

For i = Num_Partidas + 1 To 500

Hoja2.Cells(i + 13, 1).Value = 0

Next

ActiveSheet.Protect password:="151152", DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingColumns:=True, AllowFormattingRows:=True
'For j = 4 To Num_Partidas + 3 'Sheets(j).Cells(1, 1).Value = j - 3
'Next j
Sheets(1).Select

ActiveWorkbook.Protect Structure:=True, Windows:=False, password:="151152" Application.ScreenUpdating = True
End Sub

Muchas gracias de antemano

Rafaelmvt

1 respuesta

Respuesta
1

Las hojas tienen, por así decirlo 3 nombres, un nombre es el que vemos en las pestañas, ese nombre lo podemos cambiar.
El segundo nombre, es un nombre interno que maneja excel para cada hoja, cuando creas un libro en automático, excel pone los nombres internos “hoja1”, “hoja2”, “hoja3”, etc, si creas una hoja nueva excel, le pone nombre interno “hoja4”.
El tercer nombre, es un número consecutivo, desde el 1 hacia delante.
En esta instrucción estás ocupando el nombre interno.
Hoja2.Cells(j + 13, 1).Value = 1
Entra a BVa y debajo de donde dice VBaProject, verás los nombres de las hojas, el nombre que está afuera del paréntesis es el nombre interno. El que está dentro es el nombre de pestaña.
Revisa que el nombre hoja2, exista en los nombres que están fuera del paréntesis, si no está, quiere decir que borraste la hoja y deberás utilizar el nuevo nombre interno, o bien, el nombre de pestaña.
La otra, es que hayas llegado al fin de las filas y quieras avanzar a la siguiente fila j + 13, entonces ya no puede.
Revisa y me comentas
Saludos. DAM
Si es lo que necesitas.

Buenos días, ya se soluciono el problema, había un error en el nombre de la pestaña del libro, pero para darla por cerrada la pregunta un ultimo punto que quiero me expliques bien, en la instrucción:Hoja2.cells(j+13,1).Value=1

Quien es J y 13+1 que es? de donde sale el 13 mas 1

me lo explicas y doy por cerrada la pregunta

Rafaelmvt

Este es un ciclo o bucle

For j = 1 To Num_Partidas
Hoja2.Cells(j + 13, 1).Value = 1
Next

Significa que el ciclo se va a repetir varias veces hasta que llegue al númeor que tiene la variable Num_partidas.

Num_Partidas = Hoja1. Cells(20, 9).Value , Num_Partidas es igual a lo que tienes en la hoja1 en la celda "I20", por ejemplo si en "I20" tienes 10, el ciclo se repetirá 10 veces

Y j tomará el valor 1, luego 2 y así, en cada ciclo tomará el siguiente número hasta llegar a 10.

La sintaxis de la instrucción cells(fila, columna), significa que en la coordenada fila y columna se pondrá un valor, en este caso se pondrá el valor 1
Siguiendo el ejemplo anterior, j + 13, quiere decir que cuando j vale 1, se le sumarán 13. En esta instrucción
Hoja2.Cells(j + 13, 1).Value = 1
Significa que en la fila 1 + 13 = 14
En la columna 1, la columna 1 es la columna “A”
Entonces en “A14” le va a poner un 1
Luego j vale 2, entonces en A15 pone un 1
Y así hasta que j llega a 10.
Saludos. DAM
No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas