Tengo un archivo que contiene en la Hoja Procesar un botón que básicamente debe realizar 3 acciones que líneas abajo describo. Tiene una hoja llamada Data que contiene una tabla “Table1” que va desde la columna A hasta la columna AB con todos los datos que arroja un informe de un software específico
En la macro, las columnas que se adicionen al final debe ser parte de la tabla “Table1” y esta debe hacer:
1-. Copiar el contenido de la columna K en la columna AC, es decir la columna siguiente a la última de la tabla.
2-. Usar la función texto en columnas a través de la macro para que en la columna AC quede el número de documento del proveedor y en la AD el nombre del proveedor, el separador que usa es el Alt+124 “|”
3-. Luego en la columna AF debe concatenar lo contenido en la columna AC con la Columna J
Ejemplo:
Columna K = 900983925 | NOVA SEGURIDAD PRIVADA LTDA
Columna AC = 900983925 | NOVA SEGURIDAD PRIVADA LTDA
Columna AC luego de aplicar el texto en columnas = 900983925 y se renombra como “NitProveedor”
Columna AD luego de aplicar el texto en columnas = NOVA SEGURIDAD PRIVADA LTDA (pero esta no se necesita)
Columna AF = Concatenar AC & J = 900983925ME 5031 todo de tipo texto para que no coloque calores exponenciales y se renombra “NitConFactura”
4-. A continuación, la macro, el problema es que en la columna AF solo trae el contenido de AC (ver tabla), es decir no concatena con J y no encuentro la falla
Columna J
Columna K
Columna AC
Columna AD
Columna AE
Número de la factura
Proveedor
NitProveedor
Columna1
NitConFactura
ME 5031
900983925 | NOVA SEGURIDAD PRIVADA LTDA
900983925
NOVA SEGURIDAD PRIVADA LTDA
900983925
FE3 1206
901392828 | FERRINGSA S.A.S.
901392828
FERRINGSA S.A.S.
901392828
FE 5703
9012896213 | GRUPO SISO S.A.S
9012896213
GRUPO SISO S.A.S
9012896213
FE 5702
9012896213 | GRUPO SISO S.A.S
9012896213
GRUPO SISO S.A.S
9012896213
FC-7424
900446898 | ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
FC-7425
900446898 | ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
FC-7426
900446898 | ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
SET188251
830029102 | SALUD OCUPACIONAL DE LOS ANDES LTDA
830029102
SALUD OCUPACIONAL DE LOS ANDES LTDA
830029102
De antemano, mil gracias por su ayuda
Private Sub btnFacturacion_Click()
Dim wsData As Worksheet
Dim wsProcesar As Worksheet
Dim MiTabla As ListObject
Dim NuevaColumnaAC As ListColumn
Dim NuevaColumnaAE As ListColumn
Dim UltimaFila As Long
Dim Celda As Range
Dim Valor As String
Dim partes As Variant
' Definir las hojas de trabajo
Set wsData = ThisWorkbook.Worksheets("Data")
Set wsProcesar = ThisWorkbook.Worksheets("Procesar")
' Definir la tabla
Set MiTabla = wsData.ListObjects("Table1")
' Añadir columna AC y copiar los datos de la columna K
Buenos días grupo
Solicito su amable ayuda con lo siguiente:
Tengo un archivo que contiene en la Hoja Procesar un botón que básicamente debe realizar 3 acciones que líneas abajo describo. Tiene una hoja llamada Data que contiene una tabla “Table1” que va desde la columna A hasta la columna AB con todos los datos que arroja un informe de un software específico
En la macro, las columnas que se adicionen al final debe ser parte de la tabla “Table1” y esta debe hacer:
1-. Copiar el contenido de la columna K en la columna AC, es decir la columna siguiente a la última de la tabla.
2-. Usar la función texto en columnas a través de la macro para que en la columna AC quede el número de documento del proveedor y en la AD el nombre del proveedor, el separador que usa es el Alt+124 “|”
3-. Luego en la columna AF debe concatenar lo contenido en la columna AC con la Columna J
Ejemplo:
Columna K = 900983925 | NOVA SEGURIDAD PRIVADA LTDA
Columna AC = 900983925 | NOVA SEGURIDAD PRIVADA LTDA
Columna AC luego de aplicar el texto en columnas = 900983925 y se renombra como “NitProveedor”
Columna AD luego de aplicar el texto en columnas = NOVA SEGURIDAD PRIVADA LTDA (pero esta no se necesita)
Columna AF = Concatenar AC & J = 900983925ME 5031 todo de tipo texto para que no coloque calores exponenciales y se renombra “NitConFactura”
4-. A continuación, la macro, el problema es que en la columna AF solo trae el contenido de AC (ver tabla), es decir no concatena con J y no encuentro la falla
Columna J
Columna K
Columna AC
Columna AD
Columna AE
Número de la factura
Proveedor
NitProveedor
Columna1
NitConFactura
ME 5031
900983925 | NOVA SEGURIDAD PRIVADA LTDA
900983925
NOVA SEGURIDAD PRIVADA LTDA
900983925
FE3 1206
901392828 | FERRINGSA S.A.S.
901392828
FERRINGSA S.A.S.
901392828
FE 5703
9012896213 | GRUPO SISO S.A.S
9012896213
GRUPO SISO S.A.S
9012896213
FE 5702
9012896213 | GRUPO SISO S.A.S
9012896213
GRUPO SISO S.A.S
9012896213
FC-7424
900446898 | ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
FC-7425
900446898 | ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
FC-7426
900446898 | ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
ARENAS Y TRITURADOS SANTAFE S.A.S.
900446898
SET188251
830029102 | SALUD OCUPACIONAL DE LOS ANDES LTDA
830029102
SALUD OCUPACIONAL DE LOS ANDES LTDA
830029102
De antemano, mil gracias por su ayuda
Private Sub btnFacturacion_Click()
Dim wsData As Worksheet
Dim wsProcesar As Worksheet
Dim MiTabla As ListObject
Dim NuevaColumnaAC As ListColumn
Dim NuevaColumnaAE As ListColumn
Dim UltimaFila As Long
Dim Celda As Range
Dim Valor As String
Dim partes As Variant
' Definir las hojas de trabajo
Set wsData = ThisWorkbook.Worksheets("Data")
Set wsProcesar = ThisWorkbook.Worksheets("Procesar")
' Definir la tabla
Set MiTabla = wsData.ListObjects("Table1")
' Añadir columna AC y copiar los datos de la columna K
Set NuevaColumnaAC = MiTabla.ListColumns.Add
NuevaColumnaAC.Name = "NitProveedor"
MiTabla.ListColumns(11).DataBodyRange.Copy Destination:=NuevaColumnaAC.DataBodyRange
' Separar las columnas AC y AE
For Each Celda In NuevaColumnaAC.DataBodyRange
Valor = Trim(Celda.Value)
' Separar AC en columnas AC y AE
partes = Split(Valor, "|")
Celda.Value = Trim(partes(0))
Celda.Offset(0, 1).Value = Trim(partes(1))
Next Celda
' Renombrar columna AE
Set NuevaColumnaAE = MiTabla.ListColumns.Add
NuevaColumnaAE.Name = "NitConFactura"
' Obtener la última fila de la tabla
UltimaFila = MiTabla.ListRows.Count
' Formatear columnas AC y AE como texto
NuevaColumnaAC.Range.NumberFormat = "@"
NuevaColumnaAE.Range.NumberFormat = "@"
' Llenar la columna AE con la concatenación de AC y J
For Each Celda In NuevaColumnaAE.DataBodyRange
Celda.Value = Celda.Offset(0, -2).Value & Celda.Offset(0, 9).Value
Next Celda
' Ajustar el ancho de las nuevas columnas
NuevaColumnaAC.Range.EntireColumn.AutoFit
NuevaColumnaAE.Range.EntireColumn.AutoFit
' Activar la hoja "Procesar"
wsProcesar.Activate
End Sub