es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Encuentra varias coincidencias y exporta la información de la columna B a la misma columna en la hoja de cálculo correspondiente.

Voy a tratar de explicarlo de la mejor manera posible:

Tengo una hoja de trabajo llamada “Lista de Equipos” que es un resumen de un inventario. También tengo varias hojas de trabajo llamadas “Listas de Solicitud 1”, “Listas de Solicitud 2” y más.
La “Lista de Equipos” incluye un número de serie para cada elemento, pero las “Listas de Solicitud” tienen toda la información excepto el número de serie.

Tengo un UserForm que muestra las hojas de trabajo disponibles (“Listas de Solicitud”) y luego puedo elegir la adecuada.

También he logrado crear una función de “verificación” de doble clic en la Columna A de “Lista de Equipos”, y en base a esta información me gustaría:

1) Al presionar un botón “Exportar” me gustaría comparar la información de las columnas C, D, E y F de “Lista de Equipos” con las mismas columnas en la “Lista de Solicitud” que he elegido (ListBox1.Value).

2) Luego, según la “verificación” en la columna A, copiar el “Número de Serie” único (Columna B) de “Lista de Equipos” y pegarlo en la fila y columna correspondiente encontrada en la “Lista de Solicitud”.

3) Luego llevar la “Ubicación” de la “Lista de Solicitud” (H1) a la columna de ubicación en “Lista de Equipos”.
He comenzado a trabajar en la macro pero no he podido lograr nada útil.

Por favor, comprenda que mis habilidades en VBA son limitadas, pero estoy interesado en aprender más y estaría muy agradecido si alguien pudiera ayudarme.

He logrado hacer que copie la fila en base a la información en la columna A. Esto es lo que tengo hasta ahora:

Private Sub cbnExport_Click()

For Each Cell In Sheets("Lista de Equipos").Range("A4:A9999")
    If Cell.Value = ChrW(&H2713) Then
        matchRow = Cell.Row
        Rows(matchRow & ":" & matchRow).Select
        Selection.Copy

        Sheets(ListBox1.Value).Select

        Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues

        Sheets("Lista de Equipos").Select

    End If
Next

Worksheets("Lista de Equipos").Columns("A").ClearContents

Sheets(ListBox1.Value).Select

Application.ScreenUpdating = True

Unload Me

End Sub

El proceso y lo que espero lograr

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para la coincidencia de datos y copia de números de serie

    El usuario tiene una “Lista de equipos” que es una descripción general del inventario y varias hojas de cálculo llamadas “Listas de solicitud”, pero el número de serie de cada artículo solo se encuentra en la “Lista de equipos”. El usuario desea comparar la información de las columnas C, D, E y F de la “Lista de equipos” con las mismas columnas en las “Listas de solicitud” seleccionadas, copiar el “Número de serie” único de la “Lista de equipos” y pegarlo en la fila coincidente encontrada en la “Lista de solicitud”. Finalmente, la ubicación de la “Lista de solicitud” se llevará a la columna de ubicación en la “Lista de equipos”.

    Para resolver este problema, se pueden seguir los siguientes pasos:

    1. Crear un formulario de usuario con una lista de selección (ListBox) para elegir la “Lista de solicitud”.
    2. Agregar un botón al formulario de usuario y asociarle una macro.
    3. En la macro, obtener el nombre de la hoja de cálculo seleccionada de la lista de selección.
    4. Encontrar la última fila con datos en la hoja de cálculo “Lista de solicitud” seleccionada.
    5. Recorrer las filas en la hoja de cálculo “Lista de equipos” y verificar si el valor en la columna A está marcado.
    6. Si el valor en la columna A está marcado, comparar los valores de las columnas C, D, E y F de la “Lista de equipos” con las mismas columnas en la hoja de cálculo “Lista de solicitud” seleccionada.
    7. Si los valores coinciden, copiar el valor de la columna B (el número de serie único) de la “Lista de equipos” en la fila y columna coincidente en la hoja de cálculo “Lista de solicitud” seleccionada.
    8. Copiar el valor de la columna de ubicación (columna H) en la hoja de cálculo “Lista de solicitud” seleccionada en la columna de ubicación de la hoja de cálculo “Lista de equipos”.
    9. Borrar los marcadores de verificación en la columna A de la hoja de cálculo “Lista de equipos”.
    10. Cerrar el formulario de usuario.

    Es importante tener en cuenta que la solución requiere el uso de código VBA. El fragmento de código proporcionado por el usuario solo copia filas basadas en los marcadores de verificación en la columna A y no cumple con los otros pasos requeridos por el problema.

    Espero que esta solución ayude al usuario a lograr el resultado deseado.

Comments are closed.