Problemas con macro

05/11/2005 - 11:58 por Arturo | Informe spam
Al grabar paso a paso una macro como puedo hacer para que luego se ejecute
referida a la celda seleccionadada y no a la celda en que elegí al grabarla?
O sea que realice las acciones pero relativamente a la celda donde me sitúe
al ejecutarla cada vez?
Gracias y saludos

Preguntas similare

Leer las respuestas

#1 C. A. G.
05/11/2005 - 12:24 | Informe spam
Veamos si te sirve este ejemplo:
La Macro1 vale para cualquier celda que selecciones.
La Macro2 lo primero que hace es seleccionar la F14.

O sea, que la instrucción Select no se incluya en esa macro. Hazla con el
ratón..


Sub Macro1()
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
-
Sub Macro2()

Range("F14").Select
With Selection.Interior
.ColorIndex = 42
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("F10").Select
End Sub


"Arturo" escribió > Al grabar paso a paso
una macro como puedo hacer para que luego se ejecute
referida a la celda seleccionadada y no a la celda en que elegí al


grabarla?
O sea que realice las acciones pero relativamente a la celda donde me


sitúe
al ejecutarla cada vez?
Gracias y saludos
Respuesta Responder a este mensaje
#2 Arturo
05/11/2005 - 15:27 | Informe spam
Este es un ejemplo concreto de la macro que necesito. Quiero posicionarme en
F8 y ejecutar una macro que "Autoajuste a la selección" el ancho decolumna de
las 10 celdas contiguas a su derecha. Luego poder hacer lo mismo hubicado en
en cualquier otra celda.
Muchas gracias.

"C. A. G." escribió:

Veamos si te sirve este ejemplo:
La Macro1 vale para cualquier celda que selecciones.
La Macro2 lo primero que hace es seleccionar la F14.

O sea, que la instrucción Select no se incluya en esa macro. Hazla con el
ratón..


Sub Macro1()
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub
-
Sub Macro2()

Range("F14").Select
With Selection.Interior
.ColorIndex = 42
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
Range("F10").Select
End Sub


"Arturo" escribió > Al grabar paso a paso
una macro como puedo hacer para que luego se ejecute
> referida a la celda seleccionadada y no a la celda en que elegí al
grabarla?
> O sea que realice las acciones pero relativamente a la celda donde me
sitúe
> al ejecutarla cada vez?
> Gracias y saludos



Respuesta Responder a este mensaje
#3 Héctor Miguel
05/11/2005 - 19:25 | Informe spam
hola, Arturo !

... ejemplo concreto de la macro que necesito... posicionarme en F8 y
... una macro que "Autoajuste a la seleccion" el ancho de columna de las 10 celdas contiguas a su derecha
... poder hacer lo mismo ubicado en cualquier otra celda.



suponiendo que la celda seleccionada 'se incluye' en las 10 celdas a su derecha para 'autoajustar' ancho de columna...
en un modulo de codigo 'normal' ==Sub Ajustar_Ancho_10_Columnas()
ActiveCell.Resize(, 10).Columns.AutoFit
End Sub

si las 10 columnas a la derecha 'excluyen' a la celda activa... cambia la instruccion a...
ActiveCell.Offset(, 1).Resize(, 10).Columns.AutoFit

saludos,
hector.
Respuesta Responder a este mensaje
#4 Arturo
05/11/2005 - 20:18 | Informe spam
Gracias Héctor Miguel, ha funcionado
Pero abuso de tu ayuda y te pido algo mas. Cual sería la intrucción para a
esas mismas celdas en lugar de "autoajustar a la selección" el ancho de
columna, darles un ancho determinado, por ejemplo "20".
Nuevamente gracias

"Héctor Miguel" escribió:

hola, Arturo !

> ... ejemplo concreto de la macro que necesito... posicionarme en F8 y
> ... una macro que "Autoajuste a la seleccion" el ancho de columna de las 10 celdas contiguas a su derecha
> ... poder hacer lo mismo ubicado en cualquier otra celda.

suponiendo que la celda seleccionada 'se incluye' en las 10 celdas a su derecha para 'autoajustar' ancho de columna...
en un modulo de codigo 'normal' ==> Sub Ajustar_Ancho_10_Columnas()
ActiveCell.Resize(, 10).Columns.AutoFit
End Sub

si las 10 columnas a la derecha 'excluyen' a la celda activa... cambia la instruccion a...
ActiveCell.Offset(, 1).Resize(, 10).Columns.AutoFit

saludos,
hector.



Respuesta Responder a este mensaje
#5 Héctor Miguel
05/11/2005 - 20:57 | Informe spam
hola, Arturo !

... Cual seria la intruccion para... en lugar de "autoajustar a la seleccion"...darles un ancho determinado, por ejemplo "20"



solo modifica la parte final de la instruccion...
de -> .Resize(, 10).Columns.AutoFit
a -> .Resize(, 10).ColumnWidth = 20

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida