
Pido disculpas por la extensión del post, pero quería incluir la mayor cantidad de información posible. Pude encontrar información en línea, pero necesito ayuda para modificarla. Aquí hay un ejemplo de los datos que necesito combinar a continuación:
Necesito combinar esta tabla:
Parte 1 | Parte 2 | Lleno | Informe | Tren HRO | Administrador de tiempo | Asistente | Programado | nombre del cliente | Identificación del cliente | Migrador de clientes | Supervisor |
---|---|---|---|---|---|---|---|---|---|---|---|
7/1/21 | 7/1/21 | 7/1/21 | fulano de tal | 2/2/21 | Jane Doe Inc. | 123456789 | sara | susana | |||
8/1/21 | 8/1/21 | 8/1/21 | fulano de tal | 2/2/21 | Jane Doe Inc. | 123456789 | sara | susana | |||
7/1/21 | 7/1/21 | 7/1/21 | Juan Dee | 3/1/21 | Juan Dee | 321654987 | larry | Beto | |||
8/1/21 | 8/1/21 | 8/1/21 | Juan Dee | 3/1/21 | Juan Dee | 321654987 | larry | Beto |
En esta mesa:
Parte 1 | Parte 2 | Lleno | Informe | Tren HRO | Administrador de tiempo | Asistente | Programado | nombre del cliente | Identificación del cliente | Migrador de clientes | Supervisor |
---|---|---|---|---|---|---|---|---|---|---|---|
7/1/21 | 7/1/21 | 8/1/21 | 8/1/21 | 7/1/21 | 8/1/21 | fulano de tal | 2/2/21 | Jane Doe Inc. | 123456789 | sara | susana |
7/1/21;8/1/21 | 7/1/21;8/1/21 | 7/1/21 | 8/1/21 | Juan Dee | 3/1/21 | Juan Dee | 321654987 | larry | Beto |
encontréeste hilosobre cómo crear un VBA que haga este tipo de combinación, pero mis datos son un poco diferentes y no estoy seguro de cómo alterar el código para que esto suceda. Copiaré y pegaré el siguiente código:
'Dim 2 search cells
Dim BlankCell As Range
Dim IdCell As Range
'Find Last row and column
Dim lRow As Long
lRow = Range("A1").End(xlDown).Row
Dim lColumn As Long
lColumn = Range("A1").End(xlToRight).Column
'Set the area to consider
Dim Rng As Range
Set Rng = Range(Cells(1, 1), Cells(lRow, lColumn))
'Select each blank cell in area
Rng.Select
Selection.SpecialCells(xlCellTypeBlanks).Select
'And replace it with appropriate value
For Each BlankCell In Selection
For Each IdCell In Range(Cells(1, 1), Cells(lRow, 1))
If (IdCell.Value = Cells(BlankCell.Row, 1).Value And Cells(IdCell.Row, BlankCell.Column) <> "") Then
BlankCell = Cells(IdCell.Row, BlankCell.Column).Value
End If
Next IdCell
Next BlankCell
'Then erase duplicate lines
Rng.Select
ActiveSheet.Range(Cells(1, 1), Cells(lRow, lColumn)).RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6), _
Header:=xlYes
Con este VBA, consolida las filas usando la Columna A como identificador para hacer coincidir. Sin embargo, necesito que VBA coincida con la columna G como identificador y no estoy seguro de dónde editar para cambiar la columna. Y para situaciones en las que necesito combinar todas las fechas con un ";" delimitador, no creo que este VBA aborde esa situación. ¿Qué más necesito agregar para que eso suceda exitosamente? ¡Muchas gracias!