Macro. Posición relativa

08/09/2005 - 22:51 por FeCel | Informe spam
Necesito crear una macro que haga lo siguiente:
1.- Insertar una celda en la posición del cursor, desplazando a la derecha
el resto de la fila;
2.- En la celda insertada, concatenar el contenido de la celda que está en
la misma fila, en la columna de la derecha, con el contenido de la celda que
esta en la misma fila, y dos columnas hacia la derecha. Ejemplo: si
inicialmente estaba en la posición B20, con el paso 1 anterior se insertó una
celda en blanco en esa posición. En B20 debe quedar C20 concatenado con D20.
3.- Luego transformar a valor el nuevo contenido de B20.
4.- Eliminar las celdas de las dos columnas hacia la derecha, desplazando el
resto hacia la izquierda. En el ejemplo, eliminar las celdas C20 y D20,
desplazando el resto a la izquierda.
Es necesario que las direcciones sean "relativas" pues la operación de
"juntar" dos celdas la necesito hacer en cualquier parte de la hoja.
Muchísimas gracias de antemano al que me pueda ayudar.
FeCel

Preguntas similare

Leer las respuestas

#1 FeCel
08/09/2005 - 23:21 | Informe spam
Parte de la macro es la siguiente:

Selection.Insert Shift:=xlToRight
ActiveCell.FormulaR1C1 = "=+RC[1]&"" ""&RC[2]"
ActiveCell.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
****Como desplazar una posición a la derecha de la posición actual del
cursor***
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft

La línea en **** no se como se programa.
Gracias.
Atte
FeCel
#2 julian-Vlc-Sp
09/09/2005 - 02:41 | Informe spam
¡Importante!: Colabora con el grupo.Contesta a este mensaje y dinos si te
sirvió o no la respuesta dada. Muchas gracias.

¿Conoces la grabadora de macros?

SALUDOS.
julian-Valencia-España

http://www.access-facil.tk
http://www.access-sin-codigo.tk

"FeCel" escribió en el mensaje
news:
Mostrar la cita
#3 FeCel
09/09/2005 - 15:55 | Informe spam
Julian,
Es muy útil. Es mi única forma de hacer las macros, pues no domino el
lenguaje de programación.
El problema de la grabadora de macros, es que en mi versión de Excel (2000),
cuando grabo la secuencia de teclas con el grabador de macros, la secuencia
se almacena con las direcciones absolutas (y no relativas a la posición en
que ejecute la macro). Posiblemente no sé como usar bien el grabador de
macros, y existe algún comando que permite transformar las referencias
absolutas en relativas.

Finalmente descubrí como hacer la macro. Viendo otras consultas en este
mismo sitio, hay un comando "Offset" que resuelve mi problema. En
definitiva, la macro quedó así:


Selection.Insert Shift:=xlToRight
ActiveCell.FormulaR1C1 = "=+RC[1]&"" ""&RC[2]"
ActiveCell.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveCell.Offset(0, 1).Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
ActiveCell.Offset(1, -1).Select

Saludos
FeCel

"julian-Vlc-Sp" escribió:

Mostrar la cita
#4 KL
09/09/2005 - 17:24 | Informe spam
Hola FeCel,

Yo lo veo asi:

Dim c As Range: Set c = ActiveCell
With c
.Value = .Value & " " & .Offset(, 1).Value
.Offset(, 1).Delete Shift:=xlToLeft
End With

Saludos,
KL


"FeCel" wrote in message
news:
Mostrar la cita
#5 FeCel
09/09/2005 - 17:46 | Informe spam
KL,
Excelente. Mucho más sencillo.
Muchas gracias.
FeCel

"KL" escribió:

Mostrar la cita
Ads by Google
Search Busqueda sugerida