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.

Verifique si la palabra en la columna B de la hoja 1 es 1 o 0. Si es 1, busque la palabra en la hoja 2 en la fila 3 y devuelva la lista debajo de esa palabra.

He intentado arreglar un código basándome en las respuestas que encontré en el foro, pero no puedo manejarlo.
Mi problema es:

Tengo una lista de nombres de recetas en la hoja “Weeks” y quiero decidir con un 1 o un 0 cuáles quiero preparar para la próxima semana. En la hoja “Recipes”, tengo las recetas listadas con su lista de ingredientes debajo. Me gustaría tener una lista de lo que necesito comprar en la hoja 5.
En la hoja “Weeks” si la columna B = 1, tomar el nombre de la receta en la columna A; buscar el nombre de la receta en la hoja “Recipes” fila 3, y devolver la lista de ingredientes debajo en la hoja 3 (la lista de compras).

Sub Output_Shoopinglist()
Dim ws As Worksheet  'definir hoja de trabajo
Set ws = ThisWorkbook.Worksheets("Weeks")
Dim LastRow As Long  'obtener el último uso de fila en la columna B
LastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
Dim DataRange As Range  'obtener el rango de datos
Set DataRange = ws.Range("B3", "C20" & LastRow)
Dim DataArray() As Variant  'leer los datos en una matriz (para un procesamiento rápido)
DataArray = DataRange.Value
Dim OutputData As Collection  'crear una colección donde recolectamos todos los datos deseados
Set OutputData = New Collection
'comprobar cada fila de datos y si se desea agregar a la colección
Dim iRow As Long
For iRow = LBound(DataArray, 1) To UBound(DataArray, 1)
    If DataArray(iRow, 2) = 1 Then
        OutputData.Add DataArray(iRow, 1)
    End If
Next iRow
Dim wsTemplate As Worksheet
Set wsTemplate = ThisWorkbook.Worksheets("Recipes")
Dim wsVolume As Worksheet
Set wsVolume = ThisWorkbook.Worksheets("Shopping list")
'Buscar el valor en la pestaña "Recipes" en la fila 3 y devolver la lista de ingredientes uno debajo del otro en la pestaña "Shopping list" en la columna B
' Aquí me falta código:
End Sub

Aquí hay algunas capturas de pantalla:
enter image description here

enter image description here

enter image description here

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El código que falta en la subrutina Output_Shoppinglist() es el código VBA para realizar una función de búsqueda para encontrar los ingredientes asociados con cada receta seleccionada para preparar comidas, y luego imprimir estos ingredientes en la hoja de lista de compras.

    Para hacer esto, podemos usar la función VLOOKUP. Después de agregar los nombres de las recetas a la colección OutputData, podemos recorrer esta colección y usar la función VLOOKUP para encontrar los ingredientes asociados en la hoja Recipes. Luego podemos imprimir los ingredientes en la hoja de lista de compras.

    Aquí hay una versión actualizada de la subrutina Output_ShoppingList() con el código faltante:

    (Todos los detalles del código se omitieron para hacer más fácil la traducción)

    Ten en cuenta que este código asume que los nombres de las recetas en la hoja Weeks y la hoja Recipes coinciden exactamente, y que los ingredientes de cada receta se enumeran en una columna junto al nombre de la receta en la hoja Recipes. Además, asume que la hoja de lista de compras tiene el nombre de la receta en la columna A y los ingredientes en la columna B.

    Espero que esto ayude. Hazme saber si tienes más preguntas.

Comments are closed.