Imprimir página | Cerrar ventana

Agregar color de texto y nombre de hojas a copiar

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84997
Fecha de impresión: 26/Marzo/2026 a las 18:58


Tema: Agregar color de texto y nombre de hojas a copiar
Publicado por: JoaoM
Asunto: Agregar color de texto y nombre de hojas a copiar
Fecha de publicación: 09/Febrero/2020 a las 20:58
Ejecución de la macro: Crea una hoja llamada Global. Copia el contenido de todas las hojas existentes a esa Global

Quisiera que después de ejecutada la macro, o en su ejecución, quedara como se ve en la imagen de la hoja Global. que es la creada para recibir las copias. Los títulos ya yo pude agregar, y el 1º título con el color y negrita, pero no tengo la capacidad para lo demás y También el nombre de cada hoja existente así como el color del texto que lo hice en el primer, (usando la grabadora) pero me falta que lo haga para todas las copias.

Copiar el nombre de cada hoja y darle el color vbRed a Negrita (Bold) al nombre y títulos

https://www.subeimagenes.com/img/global-2095426.html" rel="nofollow"> Subido en https://www.subeimagenes.com" rel="nofollow - subir imagenes

Asi quisiera que quedara

Sub JuntarHojas()
Application.DisplayAlerts = False
For Each hoja In ActiveWorkbook.Sheets
If hoja.Name = "Global" Then hoja.Delete
Next
Sheets.Add before:=Sheets(1)
ActiveSheet.Name = "Global"

       ' Range("A1:m1").Font.Color = vbRed
       ' Range("A1:M1").Font.Bold = True
    With Range("A1:M1").Font
        .Color = vbRed
        .Bold = True
    End With

For x = 2 To Sheets.Count
Sheets(x).Select

Range("a1:o" & Range("a65000").End(xlUp).Row).Copy

Sheets("Global").Range("a65000").End(xlUp).Offset(0, 0).PasteSpecial Paste:=xlValues

Next
Sheets("Global").Select
Range("A1").Select
End Sub




Respuestas:
Publicado por: AnSanVal
Fecha de publicación: 10/Febrero/2020 a las 22:44

- Para hacer lo que pretendes NO debes trabajar con rangos fijos Range("A1:M1"), sino que debes emplear rangos variables.


Proceso de ejemplo:

1.- Declara una variable DIM fila AS Double y en vez de  (p.e.) Range("A1:M1") utiliza  Range("A" & fila & ":M" & fila)

2.- Asigna a fila el valor 1 fila = 1

3.- Escribe  Dpeto 1 en CELLS(fila,4).

4.- Incrementa fila  fila = fila +1.

5.- Escribe los títulos.

6.- Incrementa fila  fila = fila +1.

7.- ... etc.




-------------
Saludos desde Tenerife.



Imprimir página | Cerrar ventana