Saltar al contenido

Macro para nombrar hoja, con valores de una base de datos

publicado

Buen día, espero me puedan ayudar con lo siguiente

En una hoja tengo la base datos; en la columna "A" tengo los códigos de los datos (x20,x21,x22).

Inserté un botón, grabé una macro, para copiar otra hoja en la que realizó los cálculos y nombrarla con los valores de dicha columna "A" (x20,x21,x22):

Private Sub CommandButton1_Click()

' Copy_Form_NH Macro

Sheets("Form").Select

Sheets("Form").Copy Before:=Sheets(8)

Sheets("Form (2)").Select

Sheets("Form (2)").Name = Range("A8")

Range("A1").Select

End

End Sub

-----

El problema aquí es que siempre hace referencia a la celda A8

Lo que deseo es que al seleccionar la celda, y enseguida el botón me copie la hoja 'Form' y nombrarla con el valor de la celda seleccioné anteriormente, de modo que no me marqué el error de que la hoja ya existe.

Sé que puede ser algo sencillo, pero apenas y le empiezo a entender a esto.

Agradezco si me pudieran ayudar.

Featured Replies

publicado

Que tal Marc_Ba,

prueba modificando la linea:

Sheets("Form (2)").Name = Range("A8")

por:

Sheets("Form (2)").Name = ActiveCell.Value

Suerte...

publicado
  • Autor

Gracias bro, de hecho le busque por otros medios y caí a esa respuesta,

Agregué lo siguiente:

Dim NewForm As String

NewForm = ActiveCell.value

y así me funcionó, aunque tengo una duda, no se pueda combinar el nombre con otro valor de mi base de datos, por decirlo así ('x20 feb', 'x20 mar',) lo haría con la fórmula "concatenar" en otra celda pero un macro estaría mejor.

Saludos y gracias!

publicado

solo Agrega de nuevo la dirección de la nueva bases de datos, por ejemplo

Sheets("Form (2)").Name = Range("A1") &Range("b1")

publicado

claro solo coloca el signo "&" entre las 2 cadenas:

NewForm=ActiveCell.Value & Range("A8")

publicado
  • Autor

Excelente!

gracias, si me funciona,

NewForm=ActiveCell.Value & Range("A8")

pero al cambiar la fila, -- ActiveCell.Value & Range("A8") -- "A8" sigue 'fijo' por decirlo así..

cómo podría tomar el valor de la celda ActiveCell.Value, es decir "B8" ?

gracias de antemano

publicado

Si quieres agregarle el valor de la celda que esta a la derecha de la celda que elegiste:

NewForm = ActiveCell.Value & ActiveCell.offset(0, 1).Value

puedes mover los valores 1y 0 para elegir la celda deseada, estos números indican la cantidad de columnas y filas de distancia entre la celda activa y la que desees

publicado
  • Autor

Muchísimas gracias JAVZcity!

apenas le voy agarrando el rollo a estas cosas, pero funcionó muy bien!

Saludos!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.