Corregir funcionamiento de una macro
Tengo una macro que me encontré en la web dicha macro genera un reporte por código, la macro filtra los códigos de la hoja1 columna "A" uno a uno y los pega en la hoja reporte por separado y da un total por código generando un reporte por separado. Esto me funciona perfecto lo que quiero hacer es que en lugar de que me filtre o busque por datos de la columna "A" lo haga como un tipo de concatenado, es decir que existiera una variable de unión de las columnas "A","B","C" y de ahí me arrojara el reporte. Ejemplo:
La columna A esta el código, columna B esta color y columna C descripción la variable de búsqueda concatenaría las tres y tendría por ejemplo: "100000878AzulNailon" esta sería el dato a buscar y de ahí me genere el reporte.
Estas son las columnas de la hoja 1:
Código Color Descripción Cantidad Concepto Factura Orden de salida Dev. Prod. Dev. Proveedor Fecha No.
Este es el código:
Sub reporte() Application.ScreenUpdating = False Dim ul As Long Dim cel As Range Dim rng As Range Dim uf As Long, uf1 As Long uf1 = Cells(Rows.Count, 1).End(xlUp).Row uf = Cells(Rows.Count, 2).End(xlUp).Row Set rng = Range("A6:A" & uf1) Hoja3.Range("A1:K" & uf1).Clear Hoja3.Cells = "" Hoja1.Select ul = 6 For Each cel In rng contar = WorksheetFunction.CountIf(Range("A6" & ":A" & cel.Row), cel) If contar = 1 Then Hoja3.Range("H1") = "Código" Hoja3.Range("H2") = cel Range("A5:K" & uf).AdvancedFilter xlFilterCopy, Hoja3.Range("H1:H2"), _ Hoja3.Range("A" & ul), False ul = Hoja3.Range("A" & Rows.Count).End(xlUp).Row + 1 Hoja3.Range("A" & ul) = "Stock" Hoja3.Range("A" & ul).font.Bold = True pr = Hoja3.Range("A" & ul).Offset(-1, 0).End(xlUp).Row 'hoja 3 reporte suma = Application.WorksheetFunction.SumIf(Hoja3.Range("E" & pr + 1 & ":E" & ul - 1), "Entrada", _ Hoja3.Range("D" & pr + 1 & ":D" & ul - 1)) ' b= cantidad, c= concepto ya sea entrada o salida resta = Application.WorksheetFunction.SumIf(Hoja3.Range("E" & pr + 1 & ":E" & ul - 1), "Salida", _ Hoja3.Range("D" & pr + 1 & ":D" & ul - 1)) devprod = Application.WorksheetFunction.SumIf(Hoja3.Range("E" & pr + 1 & ":E" & ul - 1), "Dev Prod.", _ Hoja3.Range("D" & pr + 1 & ":D" & ul - 1)) devprov = Application.WorksheetFunction.SumIf(Hoja3.Range("E" & pr + 1 & ":E" & ul - 1), "Dev Prov.", _ Hoja3.Range("D" & pr + 1 & ":D" & ul - 1)) Hoja3.Range("D" & ul) = suma - resta + devprod - devprov Hoja3.Range("D" & ul).font.Bold = True Hoja3.Range("D" & ul).Interior.Color = RGB(255, 255, 0) Hoja3.Range("D" & ul).Borders(xlEdgeTop).LineStyle = xlContinuous ul = ul + 2 End If Next Application.ScreenUpdating = False End Sub