Estoy creando un USERFORM y necesito mi TESTBOX para guardar datos me esta volviendo loco no lo se CONFIGURAR

Tengo un userform con unos textbox para un ingreso de datos como esta en la imagen pero el botón guardar es el mas difícil de configurar pues necesito que en el campo del el textbox profesor yo digite el nombre de algún profesor y me lo busque luego que lo que digite en el grado el vaya y me busque el grado donde esta el profesor luego en las fortalezas por hora el vaya y me ponga las x (estas van en los cuadros pequeño) en su respectiva fortaleza

esta es la base de datos donde se supone debería guardar la información

Pero no e podido hacer nada pues ningún código que e puesto me a ayudado agradecería si alguien me puede ayudar o guiar en como hacerlo

1 respuesta

Respuesta
1

En la segunda imagen no veo si tienes más profesores, si están hacia abajo o hacia la derecha.

¿Cada profesor tiene un cuadro de "Criterios"?

Deberías tener en una hoja con la lista de profesores, de esa forma sería más fácil la captura del profesor y la búsqueda del profesor.

En los cuadros que tienes en los "criterios", en la primera parte tienes "sexto" y en la segunda tienes "6", deberías homologar, o pones "sexto" en ambas partes, o pones "6" en ambas partes.

Podrías poner otras 2 imágenes, una imagen con el userform lleno y la otra imagen de la hoja con los datos del userform plasmados en la hoja.

Una vez que hayas hecho las correcciones a tu archivo, envíame tu archivo a mi correo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “miguel ospina” y el título de esta pregunta.

amigo dante amor ya te envié el correo 

muchas gracias 

ya te reenvié el mensaje con los otros datos que pides

Anexo la macro

Dim h1, h2
'
Private Sub GUARDAR_Click()
'Por.Dante Amor
    If PROFESOR.Value = "" Or PROFESOR.ListIndex = -1 Then
        MsgBox "Falta el profesor"
        PROFESOR.SetFocus
        Exit Sub
    End If
    If GRUPO.Value = "" Or GRUPO.ListIndex = -1 Then
        MsgBox "Falta el GRUPO"
        GRUPO.SetFocus
        Exit Sub
    End If
    If HORAS.Value = "" Or HORAS.ListIndex = -1 Then
        MsgBox "Falta Horas"
        HORAS.SetFocus
        Exit Sub
    End If
    existe = False
    For i = 1 To 8
        If Me.Controls("TextBox" & i) <> "" Then
            existe = True
            Exit For
        End If
    Next
    If existe = False Then
        MsgBox "Falta capturar las fortalezas y los aspectos"
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    Set b = h1.Columns("J").Find(PROFESOR, lookat:=xlWhole)
    If b Is Nothing Then
        MsgBox "No existe el profesor"
        Exit Sub
    End If
    '
    f_gra = "": f_for = "": f_asp = ""
    fila = b.Row
    Do While True
        If h1.Cells(fila, "A") = "FORTALEZAS" Then
            f_gra = fila - 1
            f_for = fila
        End If
        If h1.Cells(fila, "A") = "ASPECTOS A MEJORAR" Then
            f_asp = fila
            Exit Do
        End If
        If fila > h2.Range("A" & Rows.Count).End(xlUp).Row Then
            Exit Do
        End If
        fila = fila + 1
    Loop
    '
    If f_gra = "" Or f_for = "" Or f_asp = "" Then
        MsgBox "El profesor " & PROFESOR.Value & _
               " no tiene los conceptos de fortaleza o aspectos"
        Exit Sub
    End If
    '
    Set c = h1.Rows(f_gra).Find(GRUPO, lookat:=xlWhole)
    If c Is Nothing Then
        MsgBox "No existe el grupo"
        Exit Sub
    Else
        col = c.Column
        Select Case HORAS
            Case "1": col = col
            Case "2": col = col + 1
            Case "3": col = col + 2
            Case "4": col = col + 3
        End Select
    End If
    '
    h1.Cells(f_for + 1, col) = TextBox1
    h1.Cells(f_for + 2, col) = TextBox2
    h1.Cells(f_for + 3, col) = TextBox3
    h1.Cells(f_for + 4, col) = TextBox4
    h1.Cells(f_asp + 1, col) = TextBox5
    h1.Cells(f_asp + 2, col) = TextBox6
    h1.Cells(f_asp + 3, col) = TextBox7
    h1.Cells(f_asp + 4, col) = TextBox8
    MsgBox "Datos actualizados", vbInformation
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h1 = Sheets("CONSOLIDADO DE DATOS")
    Set h2 = Sheets("PROFESORES")
    '
    For i = 3 To h2.Range("B" & Rows.Count).End(xlUp).Row
        PROFESOR.AddItem h2.Cells(i, "B")
    Next
    For i = 3 To h2.Range("D" & Rows.Count).End(xlUp).Row
        GRUPO.AddItem h2.Cells(i, "D")
    Next
    For i = 1 To 4
        HORAS.AddItem i
    Next
End Sub
'

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas