¿Como introducir datos desde un combobox a una celda concreta?

Mi problema es que no consigo hacer funcionar un userform que he creado, el campo combobox1 no funciona, los textbox si, ¿alguien me me puede ayudar con el código? Os dejo el que he creado.

Saludos y gracias

Private Sub CommandButton1_Click()

Dim ComboBox1 As String
Dim Fecha As String
Dim Comentario As String

Solicitante = ComboBox1
Fecha = TextBox1
Comentario = TextBox2

Cells(50, 10) = Solicitante
Cells(33, 14) = Fecha
Cells(41, 1) = Comentario

If ComboBox1 = "" Then
MsgBox ("Falta cumplimentar el nombre del solicitante del desbloqueo")
End If
If TextBox1 = "" Then
MsgBox ("Falta cumplimentar la fecha del desbloqueo")
End If
If TextBox2 = "" Then
MsgBox ("Falta cumplimentar el comentario el desbloqueo")
End If

End

End Sub

2 respuestas

Respuesta
3

H o l a: 

Te anexo mis comentarios.

1. Estás declarando combobox1 como String. El control combobox1 no deberías declararlo, ya que al hacerlo el contenido que tiene el combo se elimina. Supongo que lo que quieres declarar es la variable Solicitante.

2. No es necesario que declares las variables, VBA lo realiza en automático.

3. Puedes pasar directamente el dato del combo a la celda, no es necesario que lo pases a una variable y después esa variable a la celda.

4. Puedes poner al principio del código tus validaciones para que la captura sea completada.

Te anexo el código:

Private Sub CommandButton1_Click()
    If ComboBox1 = "" Then
        MsgBox ("Falta cumplimentar el nombre del solicitante del desbloqueo")
        Exit Sub
    End If
    If TextBox1 = "" Then
        MsgBox ("Falta cumplimentar la fecha del desbloqueo")
        Exit Sub
    End If
    If TextBox2 = "" Then
        MsgBox ("Falta cumplimentar el comentario el desbloqueo")
        Exit Sub
    End If
    '
    Cells(50, 10) = ComboBox1
    Cells(33, 14) = TextBox1
    Cells(41, 1) = TextBox2
End Sub

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta. G r a c i a s

Respuesta
2

El problema es que estás declarando como variable el nombre del control combobox cuando debes declarar la variable que lo recibe:

Dim Solicitante

De todos modos, salvo que luego utilices estas variables para otro proceso, no hacen falta ya que podés enviar directamente el elemento seleccionado del combo a la celda:

Cells(50, 10) = Combobox1 'en lugar de Solicitante

Aclara si el combobox tiene más de 1 columna para ajustar la instrucción.

Sdos.

Elsa

PD) Quizás puedas encontrar algún ejemplo resuelto en la demo de mi manual Formularios.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas