Seleccionar todos los shapes de una hoja

26/04/2006 - 20:50 por Manuel Alberto Rincón Latorre | Informe spam
Quisiera seleccionar todos los shapes de una hoja y luego pegarla en otra
hoja y que queden ubicados igual que en la anterior.

Como lo podría hacer con una macro?
 

Leer las respuestas

#1 Héctor Miguel
27/04/2006 - 04:02 | Informe spam
hola, Manuel !

Quisiera seleccionar todos los shapes de una hoja y luego pegarla en otra hoja y que queden ubicados igual que en la anterior.



nota: solo toma en cuenta que los objetos 'shape' poco [o nada] tienen que ver con las 'medidas' de las celdas en la hoja de calculo
[mas bien] su ubicacion esta determinada por la posicion que guardan con relacion a los 'bordes' de la ventana de la aplicacion
[p.e.] una macro +/- como la siguiente, hara una copia de cada 'shape' EN la posicon 'exacta' de su original
[es decir] -> tomando la distancia del original segun su ubicacion EN EL documento [u hoja de calclo]
[o sea]... si NO la vez 'exactamente IGUAL' [en cuanto a las celdas 'originales']... habria que 'revisar' las dimensiones de las celdas -?-

[ademas]... considera que por la 'coleccion' Shapes... 'pasa' un buen numero/tipo/clase/... de 'objetos de dibujo'

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

-> copia las siguientes lineas EN un modulo de codigo 'normal'...
activas la hoja donde se 'pasara' una copia de los 'shapes' y...
modifica [de ser necesario] el nombre de la hoja donde de donde 'se toman ;)

Sub Copiar_shapes()
Application.ScreenUpdating = False
Dim Sig As Integer, Izq As Single, Sup As Single
With Worksheets("hoja1") ' <- ESTA es 'la hoja' que tiene los 'shapes originales' '
For Sig = 1 To .Shapes.Count
With .Shapes(Sig)
Izq = .Left: Sup = .Top: .Copy: ActiveSheet.Paste
With Selection: .Left = Izq: .Top = Sup: End With
End With: Next: End With: ActiveCell.Select
End Sub

Preguntas similares