Saltar al contenido

Macro para organizar datos y ubicar en diferentes celdas


Recommended Posts

publicado

Buenos días,

Al extraer los datos de SAP, obtengo más datos de los necesarios y de forma desordenada. 

Por ello necesitaría realizar una macro para poder automatizar la organización de estos datos tal y como los registro en otro excel. De igual manera sería muy útil si la misma macro me copiara esos datos ya organizados y los ubicará en la siguiente línea vacía de la hoja donde guardo los datos.

Me explico.

Cuando obtengo los datos de SAP, me aparecen tal que así:

image.thumb.png.47fc155b527dfcbe767239f80bf17c2d.png

 

De estos datos me interesan únicamente las columnas B, C, F y H, en el siguiente orden:

B, F, "Columna vacía", C, H.

 

De tal manera que quede tal que así (habiendo eliminado todas las columnas que no aparecen, así como las líneas 2 y 3):

image.thumb.png.fd11807816330f02e62c1f1880b8163e.png

 

Aquí también me gustaría hacer que todos los datos de la columna D (desde la fila 2) se convirtieran en número y que todos los datos de la columna E no tuvieran decimales.

Una vez organizados estos datos de este modo, quisiera que se copiaran y pegaran en un libro nombrado "Automatización" en la hoja "ordenes", en la última fila de esta, dado que todas las anteriores tienen el histórico de otros pedidos. Para finalizar, me gustaría poder arrastrar la columna C desde la última celda añadida previamente, dado que esta tiene la fórmula de BuscarV, donde identifica el país del pedido en base a las iniciales de la columna B. Para rizar el rizo, si se pudiera añadir en la columna H la fecha de cuando he realizado esta macro sería magnifico (hasta donde yo se solo puedo hacer uso de la formula = Hoy(), pero esta me cambia cada día evidentemente y quiero mantener la fecha del día que se añada esa información en este libro).

Muchas gracias por todo vuestro apoyo!!

publicado

Para empezar, he creado este código para ordenar las columnas como quería, sin embargo, el código marcado en amarillo me lo ignora completamente.

 

Sub Botón2_Haga_clic_en()

Range("J:P").Select
Selection.Delete

Range("B:B").Insert

Range("D:D").Copy

Range("B:B").Insert

Range("C:C").Insert

'identificar la última fila rellena

last_column = Worksheets("PWL").Cells(2, Columns.Count).End(xlToLeft).Column

For i = 1 To last_column

If Cells(2, i).Value = "Belegartbez." Then

Columns(i).Delete
End If

If Cells(2, i).Value = "Item Number" Then

Columns(i).Delete
End If

If Cells(2, i).Value = "Bestelldatum" Then

Columns(i).Delete
End If

If Cells(2, i).Value = "Lokation" Then

Columns(i).Delete
End If


Next

Worksheets("PWL").Cells(1, 1).Select

End Sub

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.