¿Indicar en textbox en que celda capturar valor?

Tengo una numeración del 1 al 100 en la columna A y utilizo un userform para capturar nombres a los cuales les asigno un numero del 1 al 100, pretendo que al asignarle el número se registre en la celda que corresponde a la lista, es decir que coincidan. Para esto tendría que omitir filas en blanco ya que no los registro en orden progresivo.

1 respuesta

Respuesta
1

'capturar nombres a los cuales les asigno un numero del 1 al 100'

Si los números en col A se muestran ordenados y sin espacios vacíos, y si imaginamos que empiezan en fila 2, el destino de tu nombre sería:

Cells(número+1,2)= textbox

Número: es el contenido del control donde ingresas el numero... No índicas como 'asignas'

+1 : porque al número 1 le corresponde la fila 2... no índicas en que fila empieza la lista

Textbox: es el nombre del control de texto donde ingresas el nombre.

Si la col A tiene otra distribución aclara un poco más la consulta si es posible con una imagen, además de aclarar como 'asignas' el nro al nombre.

Disculpe la demora.

En la imagen muestro el sencillo proceso para archivar los datos, ya he logrado ingresar el valor pero me tope con que los ingresos no están en orden y como puede observar mi tabla tiene formato, lo cual hace que me envíe el registro hasta la primer fila sin formato:

Cells(ultimafila + 1, 1) = numero
Cells(ultimafila + 1, 2) = nombre

Reitero, quisiera saber si existe algún modo para hacer coincidir el registro, ejemplo:

Número 10, al registrarlo los datos deben de ir a la celda B11 y C11 respectivamente.

Gracias por su orientación...Saludos.

Te envié la instrucción precisa... imaginando que tendrías una tabla ordenada a partir de fila 2, no se porqué utilizaste una instrucción que hace mención a una variable desconocida. Así que reitero:

Cells(número+1,2)= textbox

-----Número: es el contenido del control donde ingresas el numero... Según la imagen puedo presuponer que se trata del TextBox1. +1 : porque al número 1 le corresponde la fila 2.

-----Textbox: es el nombre del control de texto donde ingresas el nombre. Voy a presuponer que se trata del TextBox2.

Entonces el botón Aceptar tendrá este código:

Private Sub CommandButton1_Click()
'x Elsamatilde
Cells(TextBox1 + 1, 2) = Val(TextBox1)
Cells(TextBox1 + 1, 3) = TextBox2
End Sub

Todo bien, solo que cometí el error de introducir 2 veces ciertos números y me sobrescribe en celdas ya ocupadas.

como podría validar que la celda esta ocupada y evitar introducir el valor??

Saludos y de nuevo gracias.

Quedaría así:

Private Sub CommandButton1_Click()
'x Elsamatilde
'controla si no está ocupada la col B
If Cells(TextBox1+1,2) <> "" Then 
   Cells(TextBox1 + 1, 2) = Val(TextBox1)
   Cells(TextBox1 + 1, 3) = TextBox2
End if
End Sub

Solo se controla la col B, si además debe controlar también la C sería:

If Cells(Textbox1+1,2) <> "" and Cells(Textbox1+1,3) <> "" Then

Sdos!

He hecho algunas modificaciones con las indicaciones que me ha mencionado y todo va bien, por ello he tardado en contestar al estar haciendo varias pruebas. Pero me ha surgido un pequeño error al introducir datos que no son numéricos en el textbox1:

Error 13, no coinciden los tipos.

Línea que me subrayó;

"Cells(textbox1 +1, 2) = textbox1"

Me parece bien que detecta el error, pero es molesto que me envié al VB para corregir, como hago para que no ingrese el dato incorrecto sin salir del formulario??

:) Saludos.

Deja una nueva consulta en el tablón (podes indicar en el cuerpo del mensaje que es para mi)

Si realizaste cambios tenes que dejar escrito tu nuevo código para entender porque se produce el error.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas