Encontrar la columna donde esta un dato

Tengo hecha una aplicación que busca los datos de una hoja (en este caso proveedor y año) con un formulario y los guarda en una hoja con el nombre del proveedor que crea si no existe o rellena en la siguiente columna, hasta aquí todo bien.

Ahora lo que pretendo es que si el año que pides ya esta en la hoja (que existe) escriba los datos en esa columna, he intentado encontrar la columna con los siguientes fórmulas pero ninguna me funciona

Año = TextBox1 aquí es donde pones el año a buscar
If año = (Year(Range("B4:L4")).Column) Then   aqui busco si existe el año

las dos siguientes son la manera en que busco la columna
esta = (año = (Year(Sheets(nombre).Range("B4:L4")).Column))
esta = Sheets(nombre).Range("B4:L4").Find(año, LookIn:=xlValues, LookAt:=xlPart).Offset(0, 2).Value

la siguiente relleno la celda que toca en la columna de ese año

ActiveSheet.Cells(4, esta).Value = Usf_PROVEEDOR.TextBox1

ActiveSheet.Cells(5, esta).Value = CDbl(Usf_PROVEEDOR.F1)

Por más que he buscado en Internet no encuentro la manera de hacerlo.

1 respuesta

Respuesta
1

¿Podrías subir una imagen de una hoja? En especial para ver qué se guarda en range B4:L4.

Si son números de años, las siguientes instrucciones te devuelven el nro de col o un mensaje si no lo encuentra. Ajustá a partir de allí según lo que quieras hacer.

Private Sub CommandButton1_Click()
año = TextBox1
Set busco = Sheets("Hoja1").Range("B4:L4").Find(año, LookIn:=xlValues, lookat:=xlWhole)
If Not busco Is Nothing Then
    MsgBox busco.Column
Else
    MsgBox "No se encontró el año."
End If
End Sub

Ahora, como un textbox guarda el dato como texto es posible que no encuentre coincidencia con el número de año. En ese caso debes colocar la función VAL, por ej:

año = Val(Textbox1)

Si esto no resuelve tu problema deja una imagen y algo de datos como para ver el contenido de la hoja donde debe buscar la ubicación del año.

Sdos.

Elsa

http://aplicaexcel.com

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas