Copiar datos de formulario según opción seleccionada en ComboBox

Tengo un formulario en excel con un ComboBox con el nombre de 20 personas, a cada uno se le hace una encuesta y las respuestas son valores numéricos que se capturan en cuadros de texto, esos valores se pasan a otra hoja en un rango especificado, para eso use un botón, pero lo mismo se debe hacer para las 20 personas. Mi pregunta es, como puedo hacer para que dependiendo del nombre que elija en comboBox, los datos que capture en los cuadros de texto se pasen al rango de la otra hoja.
Por ejemplo si en el ComboBox eligo "nombre1", los valores de los cuadros de texto se pasen a hoja 1 en el rango B4:V4. Y así sucesivamente
Si eligo nombre2, se copien a B5:V5
Si eligo nombre3, se copien a B6:V6
Si eligo nombre4, se copien a B7:V7
Ojalá puedan ayudarme.

1 Respuesta

Respuesta
2

¿Los nombres que están en el combo ya existen en la hoja?

¿Cómo cargaste los datos en el combo?

Mejor envíame tu archivo con el userform y te adapto el código

Mi correo [email protected]

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

Hola, ya te envié el archivo,  muchísimas gracias por tomarte el tiempo de responder

H   o la:

Te anexo la macro

Sub CopiarDatos()
'Por.Dante Amor
    Set h1 = Sheets("REGISTRO")
    Set h2 = Sheets("FDC-17")
    '
    h1.Select
    nombre = h1.[C2]
    If nombre = "" Then
        MsgBox "Debes indicar un nombre", vbExclamation, "COPIAR DATOS"
        [C2].Select
        Exit Sub
    End If
    '
    Set b = h2.Columns("B").Find(nombre, lookat:=xlWhole)
    If b Is Nothing Then
        MsgBox "El nombre no existe en FDC-17", vbCritical, "COPIAR DATOS"
        [C2].Select
        Exit Sub
    End If
    fila = b.Row
    col = Columns("F").Column
    celdas = Array("D8:D24", "D28:D32", "D36:D42", "D45:D50", "D54:D59", "D62:D66")
    For i = LBound(celdas) To UBound(celdas)
        For Each c In h1.Range(celdas(i))
            h2.Cells(fila, col) = c.Value
            col = col + 1
        Next
    Next
    MsgBox "Datos copiados", vbInformation, "COPIAR DATOS"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas