Macro eliminar línea jalando si hay en Pagina2

Para Dante Amor

Conoces la macro para eliminar línea, tu fuiste el que la creo, Funciona de bien

1ª quiero preguntar si puedo enviarte el libro

Solo quisiera que además de eso, al eliminar; SI de M hasta V (o M solo (de línea 11)) esta ocupada, que sea jalada la 11 de la 2ª Página hacia la ultima línea de la 1ª Página que es la que queda vacía al eliminar alguna en la 1ª Página

Esto para mantener la 1ª página siempre llena, siempre y cuando exista contenido en la 2ª página de la 11 a la 46

2 respuestas

Respuesta
1

.

Buenas tardes, Joao

La siguiente rutina pasa los datos de las primeras líneas de la página 2 a las que estuvieren vacías en la página 1, si las hubiere. Si no, te avisará de tal situación:

Sub AcomodaLin()
'---- Variables modificables ----
'=== JOAO, modifica estos datos de acuerdo a tu proyecto:
iniPag1 = "B11"
iniPag2 = "M11"
LinXpag = 36
CantCol = 10
'---- fin Variables
'
'---- inicio de rutina:
'  
ContPag1 = Application.WorksheetFunction.Count(Range(Range(iniPag1), Range(iniPag1).Offset(LinXpag - 1)))
ContPag2 = Application.WorksheetFunction.Count(Range(Range(iniPag2), Range(iniPag2).Offset(LinXpag - 1)))
If ContPag1 = LinXpag Or ContPag2 = 0 Then
    ElMensaje = "No hay nada que trasladar a la primera página" & Chr(10) & "porque " & IIf(ContPag2 = 0, "no hay lineas en la página 2.", "la página está llena")
    TipoMens = vbInformation
    ElTitulo = "NO SE HIZO NADA"
    MsgBox ElMensaje, TipoMens, ElTitulo
Else
    ActiveSheet.Unprotect Password:="By Jot@"
    cont = Application.WorksheetFunction.Min(LinXpag - ContPag1, ContPag2)
    For vacante = 1 To cont
        For col = 0 To CantCol
            Range(iniPag1).Offset(ContPag1 + vacante - 1, col).Value = Range(iniPag2).Offset(vacante - 1, col).Value
        Next
    Next
    Range(Range(iniPag2). Offset(vacante - 1), Range(iniPag2). Offset(LinXpag - 1, CantCol)). Copy Range(iniPag2)
    ElMensaje = "Listo!" & Chr(10) & "Hubo traslado de " & cont & " linea" & IIf(cont > 1, "s", "") & Chr(10) & "de la página 2 a la 1."
    TipoMens = vbInformation
    ElTitulo = "ACOMODAMIENTO TERMINADO"
    MsgBox ElMensaje, TipoMens, ElTitulo
End If
End Sub

Notarás que, si agregaras líneas o columnas al diseño de tu archivo, bastará que se lo informes a la rutina en las variables correspondientes para que siga funcionando normalmente.

Un abrazo

Fer

.

Amigo fejoal solo puedo decir EXCELENTE

.

O EXCEL ENTE.

(Ja!)

Abrazo

Fer

.

Respuesta
1

Te anexo la macro actualizada

 'Mover registro de página 2
            If OptionButton1 Then
                If Range("M11") <> "" Then
                    Range("B46") = Range("M11")
                    Range("C46") = Range("N11")
                    Range("D46") = Range("O11")
                    Range("J46") = Range("U11")
                    Range("K46") = Range("V11")
                    Range("M12:V46").Copy Range("M11")
                End If
            End If

.

'S saludos. Dante Amor. Recuerda valorar la respuesta. G gracias

.

Avísame cualquier duda

.

Gracias Dante

¿En qué parte de la macro va dicho código?

¿

'Selecciona la pagina
    If OptionButton1 Then
        c1 = "B": c2 = "K": c3 = "C": c4 = "D"
    ElseIf OptionButton2 Then
        c1 = "M": c2 = "V": c3 = "N": c4 = "O"
    End If

?

Este ghac referencioa al optionButon1 y 2

Ese codigo solo hace referencia al OptionButon1, ok ok pero donde, ¿en qué parte lo coloco o cual cambio por ese?

Ya vi donde, gracias probaré con el cambio

Tienes que probar en el archivo que te envié

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas