Tengo un conjunto de datos como se muestra a continuación, donde la primera fila de cada número de referencia es un resumen de todas las filas debajo:
| Referencia | Fecha | Comentario | Oculto, Concatenado |
|---|---|---|---|
| 1 | 20/6/22 | ||
| 1 | 20/6/22 | Prueba | 20/6: Prueba |
| 1 | 18/6/22 | Prueba2 | 18/6: Prueba2 |
| 2 | 20/6/22 | ||
| 3 | 16/6/22 |
Donde la columna oculta y concatenada se realiza mediante la función =CONCAT integrada de Excel, como =CONCAT(TEXT([@[Date]],"dd/mm"),": ",[@Comment]) .
También en esto, tengo un formulario de usuario de VBA en el que la referencia se selecciona de un cuadro combinado y los comentarios se agregan en un cuadro de texto. Esto inserta una nueva fila directamente debajo de la fila de resumen, con la fecha de entrada de la nota y el comentario en esta nueva fila.
He usado la UDF provista en https://www.extendoffice.com/documents/excel/2723-excel-concatenate-based-on-criteria.html , que funciona bien, pero lleva mucho tiempo, ya que es mucho documento.
El objetivo final es que la celda C2 sea igual a 20/6: Test, 18/6: Test2
He estado usando el UDF:
ConcatenateIf(CriteriaRange As Range, Condition As Variant, _ ConcatenateRange As Range, Optional Separator As String = ", ") As Variant como =ConcatenateIf(A:A,[@[Reference]],D:D) en C2 .
He hecho una solución ahora para limitar el rango a A2:A500 y D2:D500 , pero ¿es posible llamar a esta función dentro del sub que inserta la nueva línea? Es decir, no para insertar la función como ws.Cells("C2").Formula = "=ConcatenateIf(A:A,[@[Reference]],D:D , sino para insertar el Value de la función.
Gracias de antemano.