Cambiar contenido celda con macro en excel

Buena tarde, mi duda es la siguiente:
Necesito realizar una macro en excel que me permita, primero duplicar una fila completa y luego cambiar en uno de las celdas el nombre del campo basado en el nombre del primero.
Ejemplo:
Tengo la fila:
ct-0256 casa azul 1550
Y necesito copiar una nueva:
ct-0256 casa azul 1550
ct-0256 casa azul 1550
Y luego cambiar el nombre a la segunda así:
ct-0256 casa azul 1550
P&G-ct-0256         casa      azul      1550
GRACIAS POR SU AYUDA!!

1 respuesta

Respuesta
1
Espero que esta solución te sea útil, yo solo grabe una macro, y aquí te pongo el código por si te sirve de orientación.
Sub copiaryrenombrar()
'
' copiaryrenombrar Macro
    Range("A1:D1").Select
    Selection.Copy
    Range("A2").Select
    ActiveSheet.Paste
    Range("A3").Select
    ActiveSheet.Paste
    Range("A3").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "p&g-ct-0256 "
    ActiveCell.Offset(1, 0).Select
End Sub
Primero muchas gracias por tu ayuda,
te cuento que tu macro me funciona aunque el problema es que cuando ejecuto el macro con otra celda me vuelve a poner el nombre "p&g-ct-0256" y lo que necesito es que le deje el mismo nombre y solo le agregue a todos P&G-
Es decir algo como duplicar productos y al duplicado dejarle la misma referencia pero agregándole P&G- al inicio de la referencia!
Prueba esta modificación a ver si te sirve:
Te he adaptado y comentado el código para que puedas entender un poco mejor cada linea de la macro, espero te sea útil.
Sub copiaryrenombrar()
'
' copiaryrenombrar Macro
' Macro grabada el 24/09/2009 por Wolf
'
'
    Selection.Copy 'copia el rango seleccionado
    ActiveCell.Offset(1, 0).Select ' desciende una fila
    ActiveSheet.Paste 'pega el rango copiado
    ActiveCell.Offset(1, 0).Select 'desciende una fila
    ActiveSheet.Paste 'vuelve a pegar el rangocopiado
    ActiveCell.Offset(1, 0).Select 'lo mismito de antes
    Application.CutCopyMode = False 'aqui deja de pegar
    ActiveCell.Offset(-1, 0).Select 'sube una fila
    n = ActiveCell 'esta variable guarda el contenido actual de la celda activa
    ActiveCell.FormulaR1C1 = "p&g " & n ' y aqui concatena el contenido de la variabla con el texto que esta entre comillas
End Sub
Pruébalo y me comentas.
Muchas gracias, finalmente me funciono solo le realice una pequeña modificación al que me enviaste, quedo así por si alguien lo necesita luego:
Sub Macro2()
'
' Macro2 Macro
' preuba 2
'
' Acceso directo: CTRL+m
'
    ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select
    n = ActiveCell
    Selection.Copy
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveSheet.Paste
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveSheet.Paste
    ActiveCell.Offset(-1, 0).Range("A1").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "P&G-" & n
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "P&GVZ-" & n
    ActiveCell.Offset(1, 0).Range("A1").Select
End Sub
Nuevamente muchas gracias y ya es a donde acudir cuando necesite ayuda!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas