"Quitar filas de una hoja y pasarlas a otra hoja según condiciones"

Espero se encuentren muy bien!,
Tengo en una hoja llamada Existencia, en esa hoja tengo una columna llamada Póliza, cada póliza contiene productos y cada producto tiene una existencia, lo que busco o trato de hacer es que, cuando todos los productos de esa póliza ya no tenga existencia es decir llegue a 0, ésta póliza o las líneas de la misma póliza puedan trasladarse a otra hoja que se llama Polizas Terminadas. Todo con el fin de que, al concluir toda la existencia de una póliza, un formulario intervegan indicándome que pólizas estaría trasladando valga la redundancia a la hoja Pólizas Terminadas.

Desde siempre agradeciendo todo aporte que puedan brindarme...
Gracias!
Saludos Cordiales!
Walter
Pd. Disculparme si mi img gif va muy rápido.

Por si desean ver el archivo dejo el siguiente link... Gracias!

https://drive.google.com/file/d/0B0UREsJ19g0OMXJGdGlMSVEtc0E/view?usp=sharing 

1 respuesta

Respuesta
1

Te anexo las macros.

Debes crear un formulario con 2 botones y un listbox.

En el formulario pon el siguiente código:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Existencia")
    Set h2 = Sheets("POLIZAS TERMINADAS")
    '
    If ListBox1.ListCount > -1 Then
        For i = ListBox1.ListCount - 1 To 0 Step -1
            f = Val(ListBox1.List(i, 4))
            u2 = h2.Range("E" & Rows.Count).End(xlUp).Row + 1
            h1.Rows(f).Copy
            h2.Rows(u2).PasteSpecial Paste:=xlValues
            h2.Rows(u2).PasteSpecial Paste:=xlFormats
            h1.Rows(f).Delete
        Next
    End If
    Unload Me
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    MsgBox "Pólizas trasladas a la hoja Pólizas Terminadas", vbInformation
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    Application.ScreenUpdating = False
    ListBox1.ColumnCount = 5
    Set h1 = Sheets("Existencia")
    Set h2 = Sheets("POLIZAS TERMINADAS")
    '
    u = h1.Range("E" & Rows.Count).End(xlUp).Row
    With h1.Sort
     .SortFields.Clear: .SortFields.Add Key:=h1.Range("E5:E" & u)
     .SetRange h1.Range("B4:O" & u): .Header = xlYes: .Apply
    End With
    '
    ant = h1.Cells(5, "E")
    wtot = 0
    ini = 5
    For i = 5 To u + 1
        If ant <> h1.Cells(i, "E") Then
            If wtot = 0 Then
                For j = ini To i - 1
                    ListBox1.AddItem ant
                    ListBox1.List(ListBox1.ListCount - 1, 1) = h1.Cells(j, "G")
                    ListBox1.List(ListBox1.ListCount - 1, 2) = h1.Cells(j, "I")
                    ListBox1.List(ListBox1.ListCount - 1, 3) = wtot
                    ListBox1.List(ListBox1.ListCount - 1, 4) = j
                Next
            End If
            ini = i
            wtot = 0
        End If
        wtot = wtot + h1.Cells(i, "J")
        ant = h1.Cells(i, "E")
    Next
    Application.ScreenUpdating = True
End Sub
'
Private Sub CommandButton2_Click()
'Por.Dante Amor
    Unload Me
End Sub

Instrucciones para userform

  1. Abre tu hoja de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / UserForm
  4. Le das dobleclik en cualquier parte del Panel del userForm y copias la macro

Pon un botón en tu hoja y en un módulo pon el siguiente código:

Asigna el botón a la macro abrir

Sub Abrir()
'Por.Dante Amor
    UserForm1.Show
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: abrir
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

Saludos. Dante Amor

Recuerda valorar la respuesta.

Hola Muchas gracias por tu tiempo, déjame probarlo y te comento muy luego.

Muchas gracias ya vengo!, te pido un poquitin de paciencia.

Saludos!!!!

Sigue todas las instrucciones, cualquier duda avísame.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas