Macros

Macros.
Buenos días! Necesito que ayuda para realizar una MACRO.
Le explico:
Tengo un varios Excel que están perpendicular, y yo quiero crea una macro que me haga lo siguiente con ese Excel.
. Poner horizontal. (TRANSPONER)
. Letra nº 8.
. Negro
. Distintas fórmulas y formatos en cada columna.
Mi pregunta es:
¿Cómo hago esta Macro? Yo solo se hacer macros con datos, no con formatos, fórmulas... Etc...
Lo he intentado hacer y me sale error, o virus cada vez que quiero entrar (Algunas macros pueden contener virus. Generalmente es más fácil deshabilitarlas, pero si las macros son de confianza y las deshabilita puede perder la funcionalidad)
También lo que sucede es que yo la creo, ¿vale? Y la creo en la Hoja nº 1, y estoy en la Hoja nº 2 y le doy a Macro, y se me pasa a la hoja nº 1, Yo no quiero eso, yo quiero que me pegue la macro también en la hoja nº 2
¿Cómo hago la macro, para que todos los Excel se me ponga de la manera indicada anteriormente? (Horizontal, letra nº 8 ...)
Muchas Gracias.
Un saludo.
Mónica Rodríguez.
Posdata: ¿No puedo ponerme con vosotros en contacto a través de un correo para poder ajuntar el archivo e explicarme mejor?
Respuesta
1
Probablemente el código que tienes hace referencia a la hoja1, por lo cual cada vez que la ejecutas la macro se dirige a ella.
Sheets("Hoja1").Select
Este mensaje:
(Algunas macros pueden contener virus. Generalmente es más fácil deshabilitarlas, pero si las macros son de confianza y las deshabilita puede perder la funcionalidad)
Se refiere el nivel de seguridad que tengas habilitado en tu computador (este es el nivel medio), esta se encuentra en un botón de la barra de Visual Basic de excel. Existen 4 niveles el Bajo que habilita cualquier macro sin preguntar, el medio que pregunta si la habilitas o no, el alto que habita las macros Firmadas con certificado digital, y muy alto que deshabilita todas las macros.
Una solución podría ser :
Sub Macro1()
Range("B2:B4").Select ' rango de datos horizontales
Selection.Copy
Range("C6").Select ' rango conde los pegas
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
With Selection.Font
.Name = "Arial" ' formatos
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Selection.Font.Bold = True ' negrita
End Sub
Te dejo mi correo para cualquier consulta :
[email protected]
Pd. Solo estoy disponible hasta este viernes 30-01-09
saludos
Te lo mando por correo adjuntandote lo que hecho hasta ahora porque me sale un error.
"se ha producido un error 9 en el tiempo de ejecución . Subíndice fuera del intervalo"
No he recibido ningún correo..
Mi dirección es (xxxxxx) Te lo acabo de mandar ahora mismo.
Espero a verme explicado bien.
Muchas Gracias.
Recién volví de vacaciones
Te dejo una solución
Sub TRANSPONER_DATOS()
ULT = Sheets("VERTICAL").Range("A65536").End(xlUp).Row
FILA = 1
For Z = 1 To ULT
Sheets("VERTICAL").Select
Sheets("VERTICAL").Range(Cells(FILA, 1), Cells(FILA, 44)).Select
Selection.Copy
Sheets("INTENTO DE MACRO").Select
Cells(1, Z).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
FILA = FILA + 1
Next Z
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas