elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Macros en Excel.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Macros en Excel.  (Leído 2,231 veces)
S@l0o

Desconectado Desconectado

Mensajes: 8

El hombre no es nada, los principios son todo.


Ver Perfil
Macros en Excel.
« en: 17 Julio 2013, 17:33 pm »

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.

Código
  1. [color=blue]Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. ' lkjbugvy
  5. '
  6. ' Acceso directo: CTRL+h
  7. '
  8.    Range(ActiveCell).Select
  9.    With Selection
  10.        .HorizontalAlignment = xlGeneral
  11.        .VerticalAlignment = xlBottom
  12.        .WrapText = False
  13.        .Orientation = 0
  14.        .AddIndent = False
  15.        .IndentLevel = 0
  16.        .ShrinkToFit = False
  17.        .ReadingOrder = xlContext
  18.        .MergeCells = True
  19.    End With
  20.    With Selection
  21.        .HorizontalAlignment = xlGeneral
  22.        .VerticalAlignment = xlBottom
  23.        .WrapText = False
  24.        .Orientation = 0
  25.        .AddIndent = False
  26.        .IndentLevel = 0
  27.        .ShrinkToFit = False
  28.        .ReadingOrder = xlContext
  29.        .MergeCells = True
  30.    End With
  31.    With Selection
  32.        .HorizontalAlignment = xlGeneral
  33.        .VerticalAlignment = xlBottom
  34.        .WrapText = False
  35.        .Orientation = 0
  36.        .AddIndent = False
  37.        .IndentLevel = 0
  38.        .ShrinkToFit = False
  39.        .ReadingOrder = xlContext
  40.        .MergeCells = True
  41.    End With
  42.    With Selection
  43.        .HorizontalAlignment = xlGeneral
  44.        .VerticalAlignment = xlBottom
  45.        .WrapText = False
  46.        .Orientation = 0
  47.        .AddIndent = False
  48.        .IndentLevel = 0
  49.        .ShrinkToFit = False
  50.        .ReadingOrder = xlContext
  51.        .MergeCells = True
  52.    End With
  53.    With Selection
  54.        .HorizontalAlignment = xlGeneral
  55.        .VerticalAlignment = xlBottom
  56.        .WrapText = False
  57.        .Orientation = 0
  58.        .AddIndent = False
  59.        .IndentLevel = 0
  60.        .ShrinkToFit = False
  61.        .ReadingOrder = xlContext
  62.        .MergeCells = True
  63.    End With
  64.    Selection.UnMerge
  65.    Range("A1:E1").Select
  66.    Selection.Copy
  67.    Application.CutCopyMode = False
  68.    With Selection
  69.        .HorizontalAlignment = xlCenter
  70.        .VerticalAlignment = xlBottom
  71.        .WrapText = False
  72.        .Orientation = 0
  73.        .AddIndent = False
  74.        .IndentLevel = 0
  75.        .ShrinkToFit = False
  76.        .ReadingOrder = xlContext
  77.        .MergeCells = False
  78.    End With
  79.    Range("A1:E1").Select
  80.    Application.CutCopyMode = False
  81.    Selection.Copy
  82.    Range("A2:E5").Select
  83.    ActiveSheet.Paste
  84.    Range("H7").Select
  85. End Sub
  86. [/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.


En línea

The_Saint

Desconectado Desconectado

Mensajes: 74


Ezo


Ver Perfil
Re: Macros en Excel.
« Respuesta #1 en: 30 Julio 2013, 09:42 am »

Entiendo que lo que quieres es:

Ejecutar una macro al selecionar una celda:

Código:
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.

Código:
Var = ActiveCell.Address
Range(Var).Select

Saludos !


En línea

<< Si piensas que eres demasiado pequeño para tener impacto.
Prueba a irte a la cama con un mosquito>>
S@l0o

Desconectado Desconectado

Mensajes: 8

El hombre no es nada, los principios son todo.


Ver Perfil
Re: Macros en Excel.
« Respuesta #2 en: 30 Julio 2013, 16:36 pm »

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.
« Última modificación: 30 Julio 2013, 18:44 pm por S@l0o » En línea

The_Saint

Desconectado Desconectado

Mensajes: 74


Ezo


Ver Perfil
Re: Macros en Excel.
« Respuesta #3 en: 31 Julio 2013, 12:13 pm »

Necesito que me detalles mas que es lo que te gustaria hacer y te copio el codigo...
 :silbar:
En línea

<< Si piensas que eres demasiado pequeño para tener impacto.
Prueba a irte a la cama con un mosquito>>
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines