Formulario que busque un dato y empiece a agregar en fila del dato

'Para Dante Amor

Tengo una planilla de Excel que se divide por etapas y cada cierta cantidad de columnas componen una etapa e hice varios formularios para cada etapa que se juntan en un formulario que tiene un buscador, este buscador va a la "etapa 1" y me busca un "número de rol" que está ingresado en una columna, luego me dice en qué etapa va el registro para que se ingrese un dato. Mi problema es que el formulario corre y entrega la etapa pero al ingresar los datos en el formulario de la etapa en la que está el proceso este me busca la celda activa y no siempre es la misma fila ya que más arriba pueden haber registros en blanco por lo que completa esos y no la misma fila del "número de rol" que busqué inicialmente. Me gustaría saber si es posible ayudarme para que al buscar el registro me abra el formulario de la etapa en que está y me empiece a ingresar datos en la misma fila del registro que exista(en el caso de que la etapa 1 que es de ingreso de los datos este completa ya que si el número de rol no existe el formulario me pide que ingrese el registro)

1 Respuesta

Respuesta
1

H o l a:

Envíame un correo nuevo con tu archivo. Escribe en el archivo algunos ejemplos y me explicas lo que necesitas.

Mi correo [email protected]

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

Ya Te envié la planilla que estoy utilizando, muchas gracias por la ayuda.

H o  l a:

Te anexo el código para buscar el Rol

Private Sub CommandButton8_Click()
'Act.Por.Dante Amor
    If TextBox1 = "" Then
        MsgBox "Ingresar Número de Rol", vbExclamation
        TextBox1.SetFocus
        Exit Sub
    End If
    '
    Set h = Sheets("Seguimiento")
    h.Select
    Set b = h.Columns("B").Find(TextBox1, lookat:=xlWhole)  'Busca número de rol
    If Not b Is Nothing Then                                'sí lo encontró
        Cells(b.Row, "A").Select
        etapas = Array("", "", 10, 15, 19, 25, 38, 50)
        existe = False
        For j = 2 To UBound(etapas)
            If h.Cells(b.Row, etapas(j)) = "" Then
                existe = True
                Exit For
            End If
        Next
        Unload Me
        If existe Then
            Call MarcarEtapa(b.Row, j)
            VBA.UserForms.Add("UserForm" & j).Show
        Else
            Call MarcarEtapa(b.Row, 8)
        End If
    Else                                                    'no lo encontró
        res = MsgBox("No existe el Número de Rol: " & TextBox1 & vbCr & _
                     "Desea ingresarlo", vbQuestion + vbYesNo, "INGRESAR NÚMERO DE ROL")
        If res = vbYes Then
            UserForm1.TextBox2 = Me.TextBox1
            UserForm1.TextBox2.Locked = True
            Unload Me
            UserForm1.Show
        End If
    End If
End Sub
'
Sub MarcarEtapa(fila, etapa)
'Por.Dante Amor
    Select Case etapa
        Case 2, 3: Cells(fila, 3) = "Da Inicio"
        Case 4, 5, 6, 7: Cells(fila, 3) = "En Proceso"
        Case Else
            If Cells(fila, 19) = "NO" Then
                Cells(fila, 3) = "Anulado"
                Cells(fila, 26) = "NO"
                Cells(fila, 38) = "NO"
                Cells(fila, 50) = "NO"
                MsgBox "Proceso Anulado"
            ElseIf Cells(fila, 50) = "NO" Then
                Cells(fila, 3) = "Anulado"
                MsgBox "Proceso Anulado"
            Else
                Cells(fila, 3) = "Ajuste Final"
            End If
    End Select
End Sub

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas