Saltar al contenido

Rango celdas sin conocer el número exacto


Recommended Posts

publicado

Tengo la siguiente macro, y cuando quiero copiar los datos, no sé las filas que habrá.. he estimado 55 filas, pero si son menos, me inserta datos vacíos.. he incluido que me diga el número de filas, para conocer el número exacto.
Como puedo poner el rango sin conocer la última fila, y que inserte las filas que tengan datos. 

Sub BorrarDatos()
'primero borro los datos de la hoja

Sheets("macro").Range("A2:B55").ClearContents
Sheets("macro").Range("D4:F55").ClearContents
Sheets("macro").Range("I4:L55").ClearContents

'copio datos de la hoja datos, es la hoja que he tenido que sale del programa milena, tengo que copiar

Sheets("datos").Range("A2:B55").Copy Destination:=Sheets("macro").Range("A4")
Sheets("datos").Range("C2:E55").Copy Destination:=Sheets("macro").Range("D4")
Sheets("datos").Range("F2:I55").Copy Destination:=Sheets("macro").Range("I4")

' CeldasVacias Macro
' Las celdas vacías de serie y número se cumplimentan.

    Range("A4").Select
    ActiveWindow.SmallScroll Down:=15
    Range("A4:A41").Select
    ActiveWindow.SmallScroll Down:=-54
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.FormulaR1C1 = "=R[-1]C"
    Range("B4").Select
    ActiveWindow.SmallScroll Down:=18
    Range("B4:B41").Select
    ActiveWindow.SmallScroll Down:=-60
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.FormulaR1C1 = "=R[-1]C"


ultimaFila = Sheets("datos").Cells(Rows.Count, 5).End(xlUp).Row
MsgBox "La última fila es: " & ultimaFila


End Sub

publicado
Sub BorrarDatos()
'primero borro los datos de la hoja

Sheets("macro").Range("A2:B55").ClearContents
Sheets("macro").Range("D4:F55").ClearContents
Sheets("macro").Range("I4:L55").ClearContents

'copio datos de la hoja datos, es la hoja que he tenido que sale del programa milena, tengo que copiar
ultimaFila = Sheets("datos").Cells(Rows.Count, 5).End(xlUp).Row

Sheets("datos").Range("A2","B" & ultimaFila).Copy Destination:=Sheets("macro").Range("A4")
Sheets("datos").Range("C2","E" & ultimaFila).Copy Destination:=Sheets("macro").Range("D4")
Sheets("datos").Range("F2","I" & ultimaFila).Copy Destination:=Sheets("macro").Range("I4")

' CeldasVacias Macro
' Las celdas vacías de serie y número se cumplimentan.

    Range("A4").Select
    ActiveWindow.SmallScroll Down:=15
    Range("A4:A41").Select
    ActiveWindow.SmallScroll Down:=-54
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.FormulaR1C1 = "=R[-1]C"
    Range("B4").Select
    ActiveWindow.SmallScroll Down:=18
    Range("B4:B41").Select
    ActiveWindow.SmallScroll Down:=-60
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.FormulaR1C1 = "=R[-1]C"


End Sub

Prueba y comenta

publicado

Me alegro, no olvides agradecer a quien te ayuda o intenta ayudar, y en este foro es mediante el corazoncillo que se encuentra en la parte inferior derecha, un saludo.

publicado
Hace 10 horas, JSDJSD dijo:

Me alegro, no olvides agradecer a quien te ayuda o intenta ayudar, y en este foro es mediante el corazoncillo que se encuentra en la parte inferior derecha, un saludo.

Perdona.. ya le he dado al corazoncito.. Gracias.

 

publicado

¡Hola, a ambos!

Esta puede ser otra opción, un poco más concisa

Sub BorrarDatos()
  Dim uf&
  Sheets("macro").Range("A2:B55,D4:F55,I4:L55").ClearContents
  With Sheets("Datos")
    uf = .Cells(Rows.Count, 5).End(xlUp).Row
    .Range("A2:B" & uf).Copy Sheets("macro").Range("A4")
    .Range("C2:E" & uf).Copy Sheets("macro").Range("D4")
    .Range("F2:I" & uf).Copy Sheets("macro").Range("I4")
  End With
  Range("A4:B41").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
End Sub

¡Bendiciones!

publicado
Hace 11 horas, John Jairo V dijo:

¡Hola, a ambos!

Esta puede ser otra opción, un poco más concisa


Sub BorrarDatos()
  Dim uf&
  Sheets("macro").Range("A2:B55,D4:F55,I4:L55").ClearContents
  With Sheets("Datos")
    uf = .Cells(Rows.Count, 5).End(xlUp).Row
    .Range("A2:B" & uf).Copy Sheets("macro").Range("A4")
    .Range("C2:E" & uf).Copy Sheets("macro").Range("D4")
    .Range("F2:I" & uf).Copy Sheets("macro").Range("I4")
  End With
  Range("A4:B41").SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
End Sub

¡Bendiciones!

Lo tendré en cuenta.. lo bueno y resumido, dos veces bueno.. 

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.