Registrar una cuenta nueva en la hoja plan sin que se repita el código

Para Dante:

Disculpa por tantas molestias. Tengo un formulario que tiene un listbox y quiero que guarde cuentas nuevas en la hoja Plan. Al seleccionar un registro quiero que lo guarde (iniciar en la fila 8) abajo de la linea seleccionada y que no se pueda guardar el mismo código, me podrías ayudar con esto. Tengo un código que baje pero no lo puedo modificar.

Gracias

1 Respuesta

Respuesta
1

H o l a:

Envíame tu archivo con los formularios y me explicas con un ejemplo.

ya envié el archivo, es un código muy bueno

H o l a:

Te anexo la macro actualizada:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("plan")
    If TextBox2 = "" Or TextBox4 = "" Then
        MsgBox "Llene correctamente este formulario de datos", vbExclamation, "NUEVA CUENTA"
        Exit Sub
    End If
    cod = TextBox1 & TextBox2 & TextBox3
    If Not IsNumeric(cod) Then
        MsgBox "El código no es numérico", vbExclamation, "NUEVA CUENTA"
        Exit Sub
    End If
    cod = Val(cod)
    Set b = h1.Columns("A").Find(cod, lookat:=xlWhole)
    If Not b Is Nothing Then
        MsgBox "El código ya existe", vbExclamation, "NUEVA CUENTA"
    Else
        'Dar de alta el código
        registrado = False
        u = h1.Range("A" & Rows.Count).End(xlUp).Row
        For i = 1 To u
            If h1.Cells(i, "A") > cod Then
                h1.Rows(i).Insert
                h1.Cells(i, "A") = cod
                h1.Cells(i, "B") = TextBox4
                registrado = True
                Exit For
            End If
        Next
        If registrado = False Then
            h1.Cells(u + 1, "A") = cod
            h1.Cells(u + 1, "B") = TextBox4
        End If
        MsgBox "Código registrado", vbInformation, "NUEVA CUENTA"
        Unload Me
    End If
End Sub

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

Si quiero que guarde en  LA FILA A8 Y B8 que tengo que modificar.

Muchas gracias por tu ayuda

¿Siempre va a ser en la fila 8?

Entonces sería así:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("plan")
    If TextBox2 = "" Or TextBox4 = "" Then
        MsgBox "Llene correctamente este formulario de datos", vbExclamation, "NUEVA CUENTA"
        Exit Sub
    End If
    cod = TextBox1 & TextBox2 & TextBox3
    If Not IsNumeric(cod) Then
        MsgBox "El código no es numérico", vbExclamation, "NUEVA CUENTA"
        Exit Sub
    End If
    cod = Val(cod)
    Set b = h1.Columns("A").Find(cod, lookat:=xlWhole)
    If Not b Is Nothing Then
        MsgBox "El código ya existe", vbExclamation, "NUEVA CUENTA"
    Else
        'Dar de alta el código
        'registrado = False
        'u = h1.Range("A" & Rows.Count).End(xlUp).Row
        'For i = 1 To u
        '    If h1.Cells(i, "A") > cod Then
        '        h1.Rows(i).Insert
        '        h1.Cells(i, "A") = cod
        '        h1.Cells(i, "B") = TextBox4
        '        registrado = True
        '        Exit For
        '    End If
        'Next
        'If registrado = False Then
            h1.Cells(8, "A") = cod
            h1.Cells(8, "B") = TextBox4
        'End If
        MsgBox "Código registrado", vbInformation, "NUEVA CUENTA"
        Unload Me
    End If
End Sub

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

Al registrar las cuentas en la hoja plan quiero que inicie guardando los datos en la fila 8

Disculpa, pero la primera macro te guarda la cuenta y la ordena según la posición que le corresponde, ordenando de menor a mayor los códigos.

En la segunda opción te pone los códigos en la fila 8.

¿Ahora qué es lo que hace falta?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas