Saltar al contenido

Evitar Copiar Fila según Condición


Recommended Posts

publicado

Hola amigos de Ayuda Excel

Tengo el siguiente código que sirve para insertar filas en una hoja (la cual es copiada de la fila 5 y pegada en la primera fila disponible de la columna A.

Quiero agregarle una condición al código que evite pegar la fila si la celda de la fila activa correspondiente a la columna K es igual a 0. Es decir que no la copie.

 

Sub Insertarfila()

Application.ScreenUpdating = False

  

Dim ult As Long

ult = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 1

Range("A5:K5").Select

Selection.Copy

With ActiveSheet.Range("a" & Rows.Count).End(xlUp).Offset(1)

.PasteSpecial Paste:=xlPasteValues

.PasteSpecial Paste:=xlPasteFormats

.PasteSpecial Paste:=xlPasteFormulas

Application.CutCopyMode = False

ActiveSheet.Range("c" & Rows.Count).End(xlUp).Select

ActiveSheet.Range("c" & ult).Select

End With

MsgBox "¡ INGRESE DETALLES  !"

 

End Sub

 

Agradecido de antemano por su Ayuda

publicado

Hola @Leonardo Briceño

Dejo dos posibles soluciones, nos comentas.

Sub Insertarfila()

Dim ult As Long

ult = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 1

 If Range("K5") <> 0 Then Range("A5:K5").Copy Destination:=Range("a" & Rows.Count).End(xlUp).Offset(1)

MsgBox "¡ INGRESE DETALLES  !"

End Sub


Sub Insertarfila2()

Dim ult As Long

ult = Cells(Rows.Count, 1).End(xlUp).Row + 1

 If Cells(5, 11) <> 0 Then
    For i = 1 To 11
         Cells(ult, i).Value = Cells(5, i).Value
    Next i
 End If
 
MsgBox "¡ INGRESE DETALLES  !"

End Sub

publicado

Hola @Mauricio_ODN muchas por responder.

Amigo los codigos que me envias no hacen lo solitado, Anexo te envio archivo para que veas. 

Si pulsa el botón que ejecuta la macro veras que se inserta la fila una y otra y otra y otra por cada pulsación. Lo que deseo sin alterar la esencia de la macro es que NO permita copiar  la fila si el valor de la columna K es igual a 0. Y pudiera colocar un mensaje al usuario que le indique que no puede insertar filas sin antes haber ingresado todos los datos correspondientes en la fila, Esto es con el proposito de que se llena toda la informacion solicitada en cada fila. 

Muchas gracias amigo

EJEMPLO DE INSERTAR FILA.xlsm

publicado

Hola de nuevo @Leonardo Briceño

Los códigos que te envie hacen lo que se requiere en este caso como K5 es igual a 0, pues no realiza el proceso.

Supongo que no realizaste un debug linea por linea,  es posible que estés aprendiendo  y no entiendas el código completamente.

Intenta cambiando el valor de K5 y realiza las pruebas.

También es posible es que no te haya entendido del todo, tal vez si explicaras mejor que celda específicamente es la que se va a evaluar, podríamos avanzar.

Saludos.

publicado

Hola @Mauricio_ODN buenos días.

La fila 5 (que siempre va a estar oculta en hoja protegida) en la fila que se va a copiar con la macro. El archivo virgen viene con la fila copiada en la fila 6 para ir llenando la informacion solicitada. Una vez llena se hacen otros procedimientos que no vienen al caso. Entonces se van a ir agregando permanentemente filas siempre en la primera fila disponible, es decir, luego de hacer el preceso de la fila 6, copia una linea que seria la 7; hago proceso y luego copio que sería la 8; hago proceso y luego copio que seria la 9........y así sucesivamente. Entonces lo que la macro debe hacer es que si el valor de K es igual a 0, no permita copiar la fila 5. El valor de k va a ir variando siempre, aumentado en 1, es decir, K6, K7, K8, K9....y así sucesivamente. Que no permita copiar si K=0 independientemente de la fila que esté procesando. (OJO la fila 5 es como la matriz que siempre se va  a copiar)

Gracias

publicado

Hola @Mauricio_ODN genial amigo, funciona excelente. El código es más corto y hace lo mismo . El único detalle es que la celda activa como en el codigo que te dí, debe quedar en la nueva fila copiada, especificamente en la columna C. Eso sería amigo

  • 2 weeks later...

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.