Macro BVA que filtre un solo concepto de una tabla, copie y pegue en otra hoja, llame otra macro y finalizar haga un loop

Tengo una macro que procesa una información, solo que me toca pegar día por día en la macro, ya que si ejecuto varios días al tiempo algunos cálculos no quedarán bien.

Por ende requiero algo no muy complejo, tengo una data en una hoja llamada "dia-dia" donde en la columna B están los días del mes, simplemente requiero organizar esa columna de menor a mayor, filtrar en la misma columna B valor por valor, por ejemplo si tengo el día 1, 2 y 3, que la macro organice, filtre todo lo que sea 1, lo copie, lo pegue en la hoja llamada "Macro" ejecute la macro llamada "Depurar_MACRO" limpie todo lo que quedó en la hoja "Macro", se devuelva a la hoja "dia-dia" y ahora filtre el segundo valor, que para este ejemplo es todo lo que en la columna B sea 2, lo copie, vaya a la hoja "Macro" pegue, llame la macro "Depurar_MACRO" limpie todo lo que quedó en la hoja "Macro", se devuelva y así sucesivamente hasta que procese todos los conceptos de la columna B en la hoja "dia-dia".

1 respuesta

Respuesta
1

Filtre todo lo que sea 1, lo copie

¿Copiar desde cuál columna y hasta cuál columna?

¿En cuál fila tienes encabezados?

¿En cuál fila empiezan los datos?

Lo pegue en la hoja llamada "Macro"

Lo peguen cuál celda, en cuál fila, en cuál columna.

Antes de pegar debe borrar la hoja, ¿o algunas celdas?


Nota: Una cosa que debes tener en cuenta cuando haces una pregunta en un foro ... las personas a las que solicitas ayuda no saben absolutamente nada acerca de tus datos, absolutamente nada sobre cómo están en el libro de trabajo, absolutamente nada sobre lo que tú quieres que se haga con él y absolutamente nada sobre cómo quieres el resultado ... debes ser muy específico al describir cada una de estas áreas, en detalle, y no debes suponer que seremos capaces de "resolverlo" por nuestra cuenta. Recuerda, nos estás pidiendo ayuda ... así que ayúdanos, brindando la información que necesitamos para hacerlo, incluso si esa información te parece "obvia" (recuerda, sólo es obvia para ti porque estás familiarizado con tus datos, su diseño y el objetivo general para ellos)

Hola Dante. Gracias por tus comentarios, lo tendré muy en cuenta.

¿Copiar desde cuál columna y hasta cuál columna? RTA: desde la columna A hasta la columna AT

¿En cuál fila tienes encabezados? RTA: en la fila 1

¿En cuál fila empiezan los datos? RTA como debe copiarse con enunciados empiezan en la fila 1

Lo peguen cuál celda, en cuál fila, en cuál columna. RTA: lo pegue CON enunciados, en la celda A1

Antes de pegar debe borrar la hoja, ¿o algunas celdas? RTA; depende, si se programa que limpie la hoja "Macro" antes de empezar el proceso, o después de finalizarlo, el hecho es que la hoja "Macro" debe estar siempre limpia.

Mil gracias por tu ayuda Dante, quedaré atento.

Prueba lo siguiente:

Sub Filtrar_Concepto()
  Dim c As Range
  Dim sh1 As Worksheet, sh2 As Worksheet
  Dim ky As Variant
  Dim lr As Long
  '
  Set sh1 = Sheets("dia-dia")
  Set sh2 = Sheets("Macro")
  '
  If sh1.AutoFilterMode Then sh1.AutoFilterMode = False
  lr = sh1.Range("B" & Rows.Count).End(3).Row
  With CreateObject("scripting.dictionary")
    For Each c In sh1.Range("B2:B" & lr)
      If c.Value <> "" Then .Item(c.Value) = Empty
    Next c
    For Each ky In .Keys
      sh2.Cells.ClearContents
      sh1.Range("A1:AT" & lr).AutoFilter 2, ky
      sh1.AutoFilter.Range.Copy sh2.Range("A1")
      Call Depurar_MACRO
    Next ky
  End With
  sh1.ShowAllData
End Sub
'
Sub Depurar_MACRO()
  'tú código
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas