Quiero modificar la rutina del botón Guardar..

Para Dante Amor:

Hola, si quiero modificar la rutina del botón Guardar. En lugar de que solo guarde los valores de la hoja Solicitud a la hoja Registros, quiero repartirlos en varias hojas... Datos personales, Escolaridad, Domicilio...

el problema es que no entiendo la sintaxis de la instrucción SET, si solo se agregan Set h3 = Sheets("Datos personales"), Set h4=Sheets("Escolaridad"), Set h5 = ("Domicilio")....

PD: ¿Es necesario hacer primero la pregunta en todoexpertos?

Private Sub CmdGuardar_Click()

'Por.Dante Amor

    'Guardar datos en hoja "Registros"

    '

    Set h1 = Sheets("Solicitud")

    Set h2 = Sheets("Registros")

    celdas = Array("O7", "Q7", "J7", _

                   "D10", "D11", "D12", "D13", "E14", "E15", "D16", "H16", "D17", _

                   "E22", "E24", "D27", "D28", "G28", "D29", "D30", "G30", "D31", "G31", "D32", "G32", "D33", "E35", "E36", "E37", "E39", _

                   "L10", "L11", "M12", "N14", "Q14", "O15", "N17", "P17", "N18", "P18", _

                   "P25", "P27", "P29", "P31", "P33", "P35")

    u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1

    For c = LBound(celdas) To UBound(celdas)

        h2.Cells(u, c + 1) = h1.Range(celdas(c))

    Next

    MsgBox "Registro guardado"

End Sub

1 Respuesta

Respuesta
2

Hay que establecer en cuál hoja van cuáles celdas.

Quedaría Así:

Private Sub CommandButton2_Click()
'Por.Dante Amor
    'Guardar datos en hoja "Registros"
    '
    Set h1 = Sheets("Solicitud")
    Set h2 = Sheets("Registros")
    Set h3 = Sheets("Datos personales")
    Set h4 = Sheets("Escolaridad")
    Set h5 = Sheets("Domicilio")
    Set h6 = Sheets("Documentos")
    '
    celdas2 = Array("O2", "Q2", "K2")
    celdas3 = Array("O2", _
                    "D5", "D6", "D7", "E9", "E10", "D11", "H11", "D17", "F19")
    celdas4 = Array("O2", _
                    "D22", "D23", "G23", "D24", "D25", "D27", "E30", "E31", "E32", "E34")
    celdas5 = Array("O2", _
                    "L5", "L6", "M7", "O10", "N12", "P12", "N13", "P13")
    celdas6 = Array("O2", _
                   "P20", "P22", "P24", "P26", "P28", "P30")
    u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    For c = LBound(celdas2) To UBound(celdas2)
        h2.Cells(u, c + 1) = h1.Range(celdas2(c))
    Next
    '
    u = h3.Range("A" & Rows.Count).End(xlUp).Row + 1
    For c = LBound(celdas3) To UBound(celdas3)
        h3.Cells(u, c + 1) = h1.Range(celdas3(c))
    Next
    '
    u = h4.Range("A" & Rows.Count).End(xlUp).Row + 1
    For c = LBound(celdas4) To UBound(celdas4)
        h4.Cells(u, c + 1) = h1.Range(celdas4(c))
    Next
    u = h5.Range("A" & Rows.Count).End(xlUp).Row + 1
    For c = LBound(celdas5) To UBound(celdas5)
        h5.Cells(u, c + 1) = h1.Range(celdas5(c))
    Next
    u = h6.Range("A" & Rows.Count).End(xlUp).Row + 1
    For c = LBound(celdas6) To UBound(celdas6)
        h6.Cells(u, c + 1) = h1.Range(celdas6(c))
    Next
    MsgBox "Registro guardado"
End Sub

En todas las hojas, estoy poniendo en la columna A el número de expediente, para identificar a quién pertenecen esos datos.

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas