Buscar número de columna en vba excel

Tengo el siguiente código para colocar un dato de un TextBox en una celda que es la intersección entre una fila y una columna. Me da un error 13 en el texto que pongo en negrita. Este error viene de que la fórmula para encontrar el número de columna (justo la linea anterior) no lo encuentra.

No doy con la solución. Gracias de antemano.

Private Sub UserForm_Activate()

Range("B2:F18").ClearContents

Dim Tipos As Long
Dim Modelos As Long

Tipos = Cells(Rows.Count, 1).End(xlUp).Row
Modelos = Cells(1, Columns.Count).End(xlToLeft).Column

For i = 2 To Tipos
ComboBox1.AddItem (Cells(i, 1))
Next

For j = 2 To Modelos
ComboBox2.AddItem (Cells(1, j))
Next

End Sub

'Botón Aceptar
Private Sub CommandButton1_Click()

Dim Row As Integer
Dim Col

Set a = Sheets("UCENTRAL")

Row = Application.Match(ComboBox1, a.Range("A:A"), 0)
Col = Application.Match(ComboBox2, a.Range("A1:A18"), 0)  <------- col debería ser igual al número de columna de ese rango, pero devuelve el error 2042

Cells(Row, Col).Value = TextBox1

Unload Me

End Sub

'Botón Cancelar
Private Sub CommandButton2_Click()
Unload Me
End Sub

1 respuesta

Respuesta
1

Por lo poco que entiendo y por lo que puedo ver ese error te lo tira porque no tienes definida la variable col.

Donde dice

Dim col 

Debería decir

Dim col as integer. 

Fíjate si es por eso.

Es en lo único que puedo aportar. No soy un gran experto pero es lo que se aprecia a simple vista.

No olvides de valorar la respuesta.

Gracias por tu respuesta Favio. Tenía definida la variable al principio tal y como lo pones Dim Col As Integer, y el resultado salía Col=0 para cualquiera de las opciones del combobox.

Elena Martín. Como dije antes, ahí escapa ya de mis conocimientos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas