Primer celda vacía de un rango en otra hoja

Les comento que he intentado muchas macros para esto, pero mejor pido una macro de cero.

Necesito una macro que me ubique en la primer celda vacía en el rango (A5:A2999) de una hoja que se llama "NIT", pero esta macro la quiero ejecutar desde otra hoja que se llama "DTA".

Para mayor información les comento que el rango (A5:A2999) de la hoja "NIT" ya tengo datos pero la macro debe de colocar el cursos en la primer celda vacía.

1 Respuesta

Respuesta
1

Puedes responder en el siguiente orden:

1. Qué tienes en las celdas: A5:A2999

2. ¿Tienes fórmulas?

3. ¿Es una tabla?

4. Después de la la celda A2999, ¿qué tienes?

Si estás en la hoja "DTA" y quieres seleccionar una celda de la hoja "NIT", primero es necesario seleccionar la hoja "NIT" y después la primera celda vacía del rango de celdas.

5. Para qué necesitas seleccionar la primer celda vacía. ¿Vas a introducir datos?

Porque si vas a introducir datos, no es necesario seleccionar la celda. Con la macro se puede saber cuál es la primer celda vacía, y en esa celda se puede introducir un dato y no será necesario seleccionar la hoja ni la celda.

Si quieres enviarme tu archivo para revisar tus datos.

Mi correo:

[email protected]

1- En ese rango tengo números de NIT

2-No hay fórmulas

3-No es tabla

4-No hay nada

5-Para introducir un nuevo NIT

Con lo siguiente, puedes poner un dato en la primer celda vacía, de la columna A, de la hoja "NIT" .

Cada que ejecutes la macro, pondrá un valor en la primer celda vacía de la columna A, de la hoja "NIT". No es necesario seleccionar la hoja "NIT", no es necesario seleccionar la celda.

Puedes ejecutar la macro desde la hoja "DTA" y la macro escribirá en la hoja "NIT".

De hecho, lo mejor es utilizar la referencia de la hoja y la celda, sin necesidad de seleccionarlas, de esa manera las macros son más rápidas.

Revisa el siguiente ejemplo. Trata de adaptarlo a tu necesidad.

Sub test()
  'Para poner un dato en la primer celda vacía de la columna A
  Dim sh As Worksheet
  Dim lr As Long
  '
  Set sh = Sheets("NIT")
  lr = sh.Range("A" & Rows.Count).End(3).Row + 1
  sh.Range("A" & lr).Value = "número de nit"
End Sub

Si tienes dificultad para adaptarlo a tu necesidad, entonces regresa aquí explica con detalle qué quieres hacer. Pero debes explicar cuál es el objetivo final. Pedir que quieres seleccionar una celda, ese no es el objetivo final. El objetivo final puede ser que quieres pasar datos de la hoja "DAT" a la primer fila disponible de la hoja "NIT".

La macro funciona, pero lo que quiero es que el usuario pueda ir a la primer celda vacía la columna "A" de la hoja llamada "NIT" y estando ahí digite un nuevo numero de NIT, ahora bien, si esto se puede simplificar con llenado automático seria fabuloso,  lo que sucede es que estando en la hoja llamada NIT, el usuario tienen que llenar otros datos en las columnas siguientes, tales como el NCR, nombre, dirección, departamento, giro, etc. puedes verlo en el archivo que te envié por correo.

Ejecuta el siguiente código, para ir a la hoja NIT

La macro va a seleccionar la primer celda vacía de la columna A.

Sub test2()
  Dim lr As Long
  Sheets("NIT").Select
  lr = Range("A" & Rows.Count).End(3).Row + 1
  Range("A" & lr).Select
End Sub

[No olvides valorar

Funciona perfecto, una ultima consulta, como seria si la macro la quiero ejecutar desde la hoja "DTA", esta se la asignaría a un objeto que tengo en esta hoja.

La macro la quiero asignar al objeto que tengo en la hoja "DTA" que esta por la columna R, tal como se ve en la imagen, ya asigne la macro pero me manda error.

Hola, ya lo solucione, la macro la puse en un modulo y se la asigne al objeto, no le hice ningún cambio, muchas gracias, sera de mucha utilidad.

[Me alegra escuchar eso, un placer ayudarte. Gra cias por comentar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas