Hola!, buen día! Desearia que alguien me ayudara con un problema que tengo al ejecutar una macro en Excel.
Lo que deseo es ejecutar una macro desde un celda activa, no desde donde inicialmente programe la macro. El codigo es el siguiente.
[color=blue]Sub Macro1()
'
' Macro1 Macro
' lkjbugvy
'
' Acceso directo: CTRL+h
'
Range(ActiveCell).Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
Selection.UnMerge
Range("A1:E1").Select
Selection.Copy
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Range("A1:E1").Select
Application.CutCopyMode = False
Selection.Copy
Range("A2:E5").Select
ActiveSheet.Paste
Range("H7").Select
End Sub
[/color]
Tengo entendido que para ejecutar lo que deseo se debe escribir el comando Activecell despues de Range, pero cuando hago eso no se puede ejecutar la macro ya que detecta un error.
Cabe destacar que el resto del codigo lo que hace es que selecciona un rango de celdas y las descombina para que asi los datos que esten en una celda se queden en una sola y no se combinen con otras.
Saludos, y espero su pronta respuesta.
Entiendo que lo que quieres es:
Ejecutar una macro al selecionar una celda:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then ActiveSheet.Range("C4").Value = "TU CODIGO"
End Sub
O ejecutar la macro a partir de una celda con lo que tendrias que jugar con guardar en una variable la direccion de la celda seleccionada y despues seleccionar la celda.
Var = ActiveCell.Address
Range(Var).Select
Saludos !
Hola! Que tal? Gracias por tu ayuda! Ahora lo que no se es donde insertar ese codigo, ya que no tengo conocimientos de VBA, si podras reescribir el codigo te lo agradeceria mucho. De hecho hace rato probe con el codigo que pusiste pero me sigue marcando error de compilacion. De ante mano, gracias.
Necesito que me detalles mas que es lo que te gustaria hacer y te copio el codigo...
:silbar: