Sobre macros en Excel

Me encargaron en la escuela dos ejercicios para hacerlos en excel pero no tengo mucha experiencia haciendo macros,.. ¿podrías ayudarme? Los ejercicios son los siguientes:
----------
Crea una macro llamada PonerTitulo que realice las siguientes acciones:
Grabar la macro en el libro en el que estamos trabajando.
1. Inserte en la celda que estamos situados un texto que nosotros introduciremos en un cuadro que la macro debe preguntarnos; apareciendo por defecto en el mismo el texto "PRUEBA DE MACRO"
2. Ponga este texto con subrayado, negrita, cursiva y un tamaño de letra 24.
3. Ponga un fondo de color azul a la celda en la cual esta el titulo.
4. Ponga el color del texto en rojo.
5. Ponga un borde superior y un borde inferior a la celda.
6. Ajuste automáticamente la columna en la cual se ha insertado el texto.
Prueba la macro para comprobar que funciona.
Crea un botón en la barra de herramientas que al pulsarlo ejecute la macro anterior.
Prueba el botón que acabas de crear para comprobar que llama a la macro.
Entra en el código de la macro y elimina todas aquellas líneas de código que no sean necesarias.
Prueba la macro para comprobar que funciona.
Crea una nueva macro llamada ColorLineasDivisión que realice las siguientes acciones.
1. Cambiar el color de las líneas de división de la hoja al color amarillo.
Pon las líneas de división de la hoja, en su color normal.
Prueba el funcionamiento de la macro.
Pon las líneas de división de la hoja, en su color normal.
Realiza los cambios necesarios en la hoja de modulo para que la macro PonerTitulo llame al final de la misma a la macro ColorLineasDivisión.
Prueba la macro PonerTitulo en una hoja y comprueba que realiza todos los pasos asignados.
Inserta los comentarios que creas convenientes en las líneas de macros para poder entender perfectamente los pasos que realiza la macro.
------------
Otro ejercicio:
1- Crea una macro en Excel que me permita cambiar la orientación del papel a Horizontal al imprimir llama a la macro ImprimirHorizontal.
2- Crea un botón personalizado para esta macro e insértalo en la barra de formato.
3- Crea una macro en Excel que me permita cambiar la orientación del papel a Vertical al imprimir llama a la macro ImprimirVertical.
4- Crea un botón personalizado para esta macro e insértalo en la barra de formato.
5- Crea un macro que me permita insertar una nueva hoja al libro de trabajo. Llámala HOJANUEVA
6- Modifica la macro para que aparezca en el menú herramientas con el nombre Insertar hoja.
7-Crear una macro que realice lo siguiente:
- Escribir el texto MACRO EN EXCEL 5.0 en la celda C6.
- Poner este texto con una orientación vertical.
- Ponerlo centrado en la celda.
- Cambiar el tipo de letra a ARRUS BT.
- Cambiar el tamaño de la letra a 14 puntos.
- Poner el fondo de la celda en color azul.
- Poner bordes gruesos a la celda de color azul fuerte.
- Poner la letra en Cursiva y negrita.
- Poner el color de la letra en color violeta.
8- Asignar esta macro a la barra de herramientas, creando para ella un botón personalizado.
9- Ejecutar la macro en otras hojas del libro de trabajo.
10- Crear una macro que me escriba en la fila nº1 todos los meses del año, y a partir de la fila 2 y en la columna A todos los días de la semana. Todos deben tener el tipo de letra Courier con tamaño 12, estar en negrita y doble subrayado, además de tener bordes cada una de las celdas.
11- Asigna dicha macro para poder ser ejecutada con la combinación de teclas CTRL + E.
12- Ejecuta la macro en otras hojas del libro de trabajo.
-----

1 respuesta

Respuesta
2
Primero, disculpa la demora, pero la semana pasada perdí mi conexión habitual a Internet. De hecho actualmente estoy escribiendo esto desde una máquina prestada y conectada a Internet, sólo para responder a tu pregunta (y a la de otros usuarios)
Segundo: Salvo un par de funciones, la mayoría de los pasos solicitados pueden obtenerse usando la "Grabadora de Macros" que posee MS Excel. ("Herramientas","Macros","Grabar nueva macro")
Por esta vez, te copio los macros depurados. Te queda introducirlos en el Editor de Visual basic (Alt + F11 para activarlo) y cumplir con las pruebas, asignación de botones, etc que pide el ejercicio.
Los macros a pegar en un módulo nuevo, en el orden que te fuera solicitado son:
Sub PonerTitulo()
' de primer ejercicio
'Solicita texto
ActiveCell.Value = InputBox("Ingresa texto de prueba", , "PRUEBA DE MACRO")
'Dá formato a la celda - Fuentes
With Selection.Font
.Underline = xlUnderlineStyleSingle
.Bold = True
.Italic = True
.Size = 24
.ColorIndex = 3
End With
'Dá formato a la celda - Fondo
With Selection.Interior
.ColorIndex = 5
.Pattern = xlSolid
End With
'Dá formato a la celda - Bordes
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
'Autoajusta tamaño de columna
ActiveCell.EntireColumn.AutoFit
'Llama a Subrutina ColorLineasDivision()
ColorLineasDivision
End Sub
Sub ColorLineasDivision()
'Cambia color de lineas
With ActiveWindow
.DisplayGridlines = True
.GridlineColorIndex = 6
End With
'Restituye color de lineas
With ActiveWindow
.DisplayGridlines = True
.GridlineColorIndex = xlAutomatic
End With
End Sub
'------------------------
' de segundo ejercicio
Sub ImprimirHorizontal()
'
ActiveSheet.PageSetup.Orientation = xlLandscape
End Sub
Sub ImprimirVertical()
ActiveSheet.PageSetup.Orientation = xlPortrait
End Sub
Sub Creahoja()
Sheets.Add after:=Worksheets(ActiveSheet.Name)
ActiveSheet.Next.Select
ActiveSheet.Name = "HOJANUEVA"
Range("C6").Select
End Sub
Sub FormateaTexto()
Range("C6").Select
ActiveCell.FormulaR1C1 = "MACRO EN EXCEL 5.0"
With Selection
.Orientation = xlVertical
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
With Selection.Font
.Name = "ARIAL" ' ARRUS BT"
.Bold = True
.Italic = True
.Size = 24
.ColorIndex = 39
End With
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 41
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 41
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 41
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 41
End With
With Selection.Interior
.ColorIndex = 5
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas