Activar la Celda AX que contien el Dato buscado en un TextBox llamado TxtPlaca y que encuentra guardado en NX

Tengo un formulario con un textbox y un botón con el que ejecuto una búsqueda, lo que necesito, es que una vez, los datos que corresponden a la búsqueda hayan sido llamados y colocados en los textbox, se active la celda AX que los contiene, para poderlos cargar en otro formulario, editarlos si es el caso y devolverlos a la base de datos actualizados.

1 Respuesta

Respuesta
1

Podrías especificar más tu pregunta. Dices " la celda AX que los contiene", para activar esa celda con una fila determinada puedes hacerlo así:

Range("AX" & fil).Activate

Donde fil es la variable que guarda el número de fila.

Hola Marcial, buenos días y gracias.

Mira, con esta macro:

Private Sub CmdBuscar_Click()
Application.ScreenUpdating = False
Sheets("BaseDeDatos").Select
Dim Rango As Range
If TxtPlaca = "" Then
Unload Me
MsgBox "Dígita el N° de Cédula o Placa", vbOKOnly + vbInformation, "Sistema"
FrmRegistro.Show
Exit Sub
End If
Set Rango = Range("N:N").Find(what:=TxtPlaca, _
lookat:=xlWhole, LookIn:=xlValues)
If Rango Is Nothing Then
frmAlta.TxtPlaca = Me.TxtPlaca.Value
Unload Me
MsgBox "Su búsqueda <" & TxtPlaca & "> No produjo resultados." & vbNewLine & "Podrá crear el 'Nuevo Usuario' a contimuación.", vbOKOnly + vbInformation, "Sistema"
'MsgBox (Su búsqueda <" & TxtPlaca & "> No produjo resultados." + Chr(13) + "Podrá crear el 'Nuevo Usuario' a contimuación."), vbOKOnly + vbInformation, "Sistema"
LimpiarCampos
frmAlta.Show
Exit Sub
Else
TxtId = Range("A" & Rango.Row)
TxtCategoria = Range("B" & Rango.Row)
TxtCuerpo = Range("C" & Rango.Row)
TxtGenero = Range("D" & Rango.Row)
TxtGrado = Range("E" & Rango.Row)
TxtArma = Range("F" & Rango.Row)
TxtApellidos = Range("G" & Rango.Row)
TxtNombres = Range("H" & Rango.Row)
TxtCedula = Range("I" & Rango.Row)
TxtRH = Range("J" & Rango.Row)
TxtTelefono = Range("K" & Rango.Row)
TxtCelular = Range("L" & Rango.Row)
TxtVehiculo = Range("M" & Rango.Row)
TxtPlaca2 = Range("N" & Rango.Row)
TxtColor = Range("O" & Rango.Row)
TxtUnidad = Range("P" & Rango.Row)
TxtSolo = Range("Q" & Rango.Row)
TxtCantidad = Range("R" & Rango.Row)
TxtEdades = Range("S" & Rango.Row)
TxtSeccion = Range("T" & Rango.Row)
TxtFuncionario = Range("U" & Rango.Row)
TxtObservaciones = Range("V" & Rango.Row)
TxtRegistro = Range("W" & Rango.Row)
End If
Application.ScreenUpdating = True
End Sub

lo que hago es buscar en una hoja llamada "BaseDeDatos", el dato que escribo en TxtPlaca y una vez lo encuentro, cargo la informacion que le corresponde en un formulario llamado FrmRegistro, el cual esta compuesto solo por TextBox.

Hasta aqui, todo bien (no se si haya la forma de resumir ese codigo tan largo).

El problema me surge, cuando encunetro el registro y  necesito modificarle algo. Necesito que los campos cargados en el FrmRegistro, pasen al FrmEditar, para modificarlos y devolverlos a la base de datos ya actualizado.

El problema me surge es cuando necesito esto, activar la celda de la fila que donde esta almacenada la información. No se como hacerlo.

En cuanto a tu sugerencia, en que evento coloco esa linea de código?

Una idea es con el evento AfterUpdate, si controlas este evento en cada textbox del formulario FrmRegistro.

Te pongo de ejemplo el de Categoría

Private Sub TxtCategoria _AfterUpdate()
Range("B" & Rango.Row)= TxtCategoria.Text
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas