Páginas

Estamos Para Ayudarle

Si desea que le resolvamos cualquier duda, con respecto a Excel, deje un comentario en el Post de Bienvenida o envie un correo a hector.eduardo.pm@hotmail.com ;)

Pregunta: Copiar datos sin tomar filas vacias

Usuario:
En un libro de Excel, de la hoja "Diario" por medio de una macro, deseo copiar el rango (Q10:R40), pegar los datos a partir de la celda (Q100), eliminando las filas vacias.
 Un saludo
 
Respuesta:
Buen dia amigo, por lo que pude entender esto es lo que usted necesita:
 
contador1 = 0
    contador2 = 0
   
    For Each c In Worksheets("Diario").Range("Q10:Q40")
       
        If c.Value <> "" Then
            Worksheets("Diario").Cells(100 + contador2, 17).Value = Worksheets("Diario").Cells(10 + contador1, 17).Value
            Worksheets("Diario").Cells(100 + contador2, 18).Value = Worksheets("Diario").Cells(10 + contador1, 18).Value
            contador2 = contador2 + 1
        End If
       
        contador1 = contador1 + 1
       
    Next c

 
Saludos
 
Usuario:
En primer lugar el rango indicado no es el corrector, deberia de ser (Q10:S40).
lo he cambiado y no funciona, no elimina las celdas vacias y al copiar los datos en
Q100, el primer dato es la suma del total, hasta ahora yo funcionaba con una macro
para hacer lo mismo en el rango (A10:R40) y pegarlos en (A55) que es el siguiente y me funciona correctamente
Sub locomocion()
ActiveWindow.LargeScroll Down:=-1
Selection.Autofilter Field:=1, Criterial:=">0", Operator:=xlAnd
Range("A10:R40").Select
Selection.Copy
Range("A55").Select
ActiveSheet.Paste
Application.CutCopyMode=False
ActiveWindow.SmallScroll Down:=-9
Selection.Autofilter Field:=1
End Sub
a esta macro le cambio el rango a copiar y el de destino y no me funciona, si te es más facil corregir esta ajustadola  a los rangos ("Q10:S40") y pegarlos en Q100.
Gracias por anticipado
 
Respuesta:
Amigo le voy a dar un consejo, cuando le den una posible solucion pruebela tal como se la dan sin modificarla.
 
Su propuesta quedaria asi:
 
    Range("Q10:S40").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="<>"
    Range("Q10:S40").Select
    Selection.Copy
    Range("Q100").Select
    ActiveSheet.Paste
    Range("Q10:S40").Select
    Application.CutCopyMode = False
    Selection.AutoFilter

 
Si no le funciona por favor agame llegar su archivo para ajustarlo a sus necesidades
Saludos
 
Usuario:
Perdona por modificar tu macro, mi intención era no tener que volverte a molestar
Gracias por tu interes