Ingresar un numero por formulario y que este numero capture datos de una matriz de datos

hola. Tengo  el  siguiente inconveniente.

Tengo  una hoja  donde  guardo cierta información por columnas desde  "D" HASTA  "KZ"
cuando se ingresa  un  numero (código de la columna)  en  una celda ("C2") aparecen los datos  en  la columna  "C"   desde  C3  en  adelante  y   esos datos  pasan  a  otra  hoja para ser mostrados.

las  celdas  presentan la  siguiente formula (desde  C3 hasta C1200)

=SIERROR(CONSULTAH(F2C3;F2C4:F1054C16384;FILA(F[-1]C[-2])-1;FALSO);0)

por ejemplo si coloco  el  numero  5  en  la celda  "C2"  me da como respuesta  que  captura los datos de  la columna  que  tiene  el  código  5  de la matriz (hacia  la derecha desde  "D2" hasta   "KZ 2"

Por  otro lado   en  un formulario  donde  se  ingresa  el  numero  de  código   de la columna  el  cual  lo  manda el  dato  a  la  celda  "C2"   para que realice la captura de  datos como  se hacia  anteriormente de la forma  manual. Sin   embargo  cuando se coloca el  numero  y   se  envía   la celda  C2  si recibe  el   numero   pero   NO   CAPTURA LOS DATOS  GUARDADOS;  es decir  que si  en el  formulario  pongo  5     si lo envía  a   la celda  "c2" pero   no   captura nada  en   la columna  c2:c1200 .

el formulario  tiene el siguiente código:


Option Explicit
Dim rango As Range

Private Sub CommandButton3_Click()

Dim strfila$, ctr As control

If TextBox1 = " " Then
MsgBox "No dejes ningun campo en blanco", vbOKOnly + vbInformation, "nota"
TextBox1.SetFocus
Exit Sub
End If

Set rango = Range("c1:c2").Find(What:=TextBox1, _
LookAt:=xlWhole, LookIn:=xlValues)

If Not rango Is Nothing Then
MsgBox "El dato ya existe", vbOKOnly + vbInformation, "nota"
TextBox1.SetFocus
Exit Sub
End If

strfila$ = [c2].End(xlUp).Offset(1, 0).Row
Sheets("abreformula").Select

Range("c2") = TextBox1


Range("c1" & strfila$ & ":c1" & strfila$).HorizontalAlignment = xlCenter

TextBox1.SetFocus

End Sub

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
MsgBox "Solo puede ingresar numeros", vbOKOnly + vbInformation, "AVISO"
End If

End Sub

espero  su ayuda.gracias

Añade tu respuesta

Haz clic para o