Saltar al contenido

Modificar una hoja sin que esta esté activa


Recommended Posts

Hola, gusto saludarles.

Necesito realizar una modificaciones de formato en una hoja que está oculta, lo que quiero es que al estar oculta no tener que hacerla visible, seleccionarla, correr la macro y volverla a ocultar.

Tengo el siguiente código:

With Hoja7  
     
    With Range("D23:D24").Font 'encabezado
        .ThemeColor = xlThemeColorDark1:         .TintAndShade = 0
    End With
    With Range("D26:D43").Font 'cuerpo sin lo estreses que deben quedar más tenues
        .ThemeColor = xlThemeColorLight1:          .TintAndShade = 0.499984740745262
    End With
    With Range("D49:D51,D53:D54").Font 'CSD y Generación de divisas
        .ThemeColor = xlThemeColorLight1:         .TintAndShade = 0.499984740745262
    End With

End With

...pero solamente funciona al estar la Hoja7 seleccionada.

Les agradezco su colaboración,

Enlace a comentario
Compartir con otras webs

Si hiciste el cambio tal cual he recomendado no debería haber ningún problema ¿estás seguro que en esa parte que copias es donde marca el error? ¿no será que no hay un módulo llamado "Hoja7"? (OJO, estás usando el nombre del módulo, no de la hoja, quizás ahí el error)

Abraham Valencia

Enlace a comentario
Compartir con otras webs

Hace 22 horas, Marco Corrales dijo:

With Range("D23:D24").Font

Hola Buen día, aquí te hace falta un "." (punto) antes de la palabra Range

Déjalo así:

With .Range("D23:D24").font

Ya que sin ese punto, estás haciendo referencia a la hoja activa, y no a la Hoja7, como es tu intención.

El "." (punto) lo debes colocar antes de todas las palabras Range que tienes en tu macro.

Saludos.

Enlace a comentario
Compartir con otras webs

Buenos días.

Aaquino, muchas gracias por tu consejo, así lo hice ya!

Abraam me comentó eso y lo cambié, ahora está así:

With Hoja7
        
    With .Range("D23:D24").Font 
        .ThemeColor = xlThemeColorDark1:         .TintAndShade = 0
    End With

End With

pero nada más pasa por el With .Range y se cae en el .ThemeColor...

Abraham, se sigue cayendo ahí y no hay ningún modulo que se llame Hoja7, estoy trabajando en un modulo aparte y necesito hacer referencia a la Hoja7 sin que la seleccione, como bien me indicaron usted y Aaquino.

Enlace a comentario
Compartir con otras webs

Buenos días Abraham.

El problema es que el archivo es muy pesado y aquí en mi trabajo tenemos restringidas muchas paginas para compartir archivos.

Les estaba alistando un archivo para poderlo subir, con menos peso y probándolo ya sin módulos ni hojas adicionales, la macro sí corrió desde otra hoja.

Entonces no se lo que estará pasando...

Enlace a comentario
Compartir con otras webs

Buenos días Abraham.

El problema es que el archivo es muy pesado y aquí en mi trabajo tenemos restringidas muchas paginas para compartir archivos.

Les estaba alistando un archivo para poderlo subir, con menos peso y probándolo ya sin módulos ni hojas adicionales, la macro sí corrió desde otra hoja.

Entonces no se lo que estará pasando...

Enlace a comentario
Compartir con otras webs

Hace 34 minutos , Marco Corrales dijo:

Buenos días Abraham.

El problema es que el archivo es muy pesado y aquí en mi trabajo tenemos restringidas muchas paginas para compartir archivos.

Les estaba alistando un archivo para poderlo subir, con menos peso y probándolo ya sin módulos ni hojas adicionales, la macro sí corrió desde otra hoja.

Entonces no se lo que estará pasando...

Ya lo resolví, le pasé un parámetro a la clave, de esta manera:

With Hoja7

  Hoja7.Unprotect (s1234)

Así llama el parámetro, ya que esa no es la clave real, y me desprotege la hoja que necesito.

Les agradezco mucho toda la ayuda brindada.

Administradores: ya podemos cerrar el tema.

Gracias,

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 95 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Gracias @Victor7. La solución que me das no es valida para mi proyecto ya que la idea es que en la pestaña DATAGlobal se vayan añadiendo registros, por lo que la formulas deben ser dinámicas en el sentido que según vaya añadiendo registros, se vayan completando el cuadro con los valores únicos.    Por otro lado, no puedo prescindir de la pestaña de valores únicos por que con esa información realizo otro tipo de informes con unidades totales, graficas con las fechas etc.. Muchas gracias por la ayuda
    • Abre el adjunto y pulsa el botón  GENERAR HOJAS y luego pulsa sobre cualquier fecha del calendario para ir a la hoja deseada. Observa que he añadido 2 botones en la hoja CALENDARIO, uno para generar las hojas y otro para eliminarlas. También he añadido una flechita azul en las hojas generadas para volver a la hoja CALENDARIO. Estas son las macros: En la hoja CALENDARIO: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim d As Integer, m As Integer, a As Integer On Error Resume Next If IsNumeric(Target) Then If Not Target = "" Then x = Int((Target.Row - 6) / 9) y = Int((Target.Column - 5) / 8) + 1 m = x * 6 + y d = Target a = Right([E3], 4) Sheets(Format(d, "00") & "-" & Format(m, "00") & "-" & a).Activate End If End If End Sub En el Módulo1: Sub GenerarHojas() Application.ScreenUpdating = False Application.CopyObjectsWithCells = True Dim a As Integer a = Right([E3], 4) With Sheets("ORIGI") For fecha = CDate("01/01/" & a) To CDate("31/12/" & a) '<-- Periodo a generar .Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = Format(fecha, "dd-mm-yyyy") [B4] = [B4] & " " & fecha Next End With Volver End Sub '-- Sub EliminarHojas(): On Error Resume Next Application.ScreenUpdating = False Application.DisplayAlerts = False Dim a As Integer a = Right([E3], 4) For fecha = CDate("01/01/" & a) To CDate("31/12/" & a) '<-- Periodo a eliminar Sheets(Format(fecha, "dd-mm-yyyy")).Delete Next End Sub '-- Sub Volver() Sheets("CALENDARIO").Activate End Sub   Libro1 (15).xlsm
    • Hola un cordial saludo a todos.  Tengo una hoja con un formato de calendario y tengo 365 hojas cada una con nombre de un dia mes y año  en especifico agradecería me ayuden a como puedo realizar la vinculacion de cada dia del calendario con cada hoja respectivamente sin hacerlo de forma manual , ya que es muy laborioso dado que lo tengo que hacer de una por una.   adjunto coloco un ejemplo de lo que tengo gracias. Libro1.xlsm
    • Muchas gracias @Israel Cassales. La hoja es un ejemplo de como seria la hoja definitiva. ( Por desgracia no puedo poner la información real). Los datos los saco de un registro automático por donde pasan unidades con un numero de referencia único para cada producto. Estas unidades pasan por unos puntos de control y en el registro automático se graban duplicando el numero de producto e indicando el registro del nuevo punto de control. Se que parece un poco lío explicado por aqui. Probaré la solución de @Victor7 y comentaré por aquí los progresos. Muchas gracias   
    • Pregunta para @jose_alk ¿El diseño en la hoja DATAGlobal es tuyo? Si la respuesta es sí, entonces toma mayor relevancia la propuesta del maestro @Victor7 porque si mira con atención cada que avanza un paso, vuelve a escribir el paso anterior, así hasta completar los tres pasos. Por esta causa la fórmula del maestro vincula solo la última parte de ese rango ya que de continuar con esa tendencia y repetir los ciclos, al final siempre le quedarán los únicos que busca. En ese caso podría omitir la otra hoja Data Valores Unicos, porque desde la primer hoja DATAGlobal si filtra en el tercer paso y quita las vacías le quedarán solo los ciclos completos. Por otro lado, si los registros no estarán siempre tan bien ordenados el escenario cambia, por lo tanto le reitero la pregunta inicial, porque si es suyo el diseño tal vez le conviene reconsiderar su formato y que los pasos estén entre lineas. Eso le dará un mayor control de los datos, los filtros y las funciones. Saludos totales.    
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.