Recordaremos hoy una pregunta bastante recurrente en las cuestiones que se me plantean.
¿Cómo localizo o encuentro la última fila usada en mi rango de trabajo?.
Tiempo atrás resolvimos la cuestión mediante funciones, sin necesidad de programación...
ver post
pero en este caso daremos uso a técnicas habituales de VBA.
Nuestra macro la creamos en un módulo estándar de nuestro libro de trabajo.
Si ejecutamos nuestra macro vemos el resultado en el MsgBox:
Son técnicas muy extendidas, pero no por eso dejan de ser prácticas y fáciles de aplicar.
El objetivo de encontrar esta última fila es siempre el mismo, delimitar nuestros rangos de trabajo de una manera dinámica.
Adicionalmente, y de manera muy similar, podemos obtener el último número de columna empleada.
Nuestra macro la creamos en un módulo estándar de nuestro libro de trabajo.
El resultado:
¿Cómo localizo o encuentro la última fila usada en mi rango de trabajo?.
Tiempo atrás resolvimos la cuestión mediante funciones, sin necesidad de programación...
ver post
pero en este caso daremos uso a técnicas habituales de VBA.
Nuestra macro la creamos en un módulo estándar de nuestro libro de trabajo.
Sub EncontrarUltimaFila() Dim sh As Worksheet Dim UltFila1 As Long, UltFila21 As Long, UltFila22 As Long, UltFila3 As Long, UltFila4 As Long Set sh = ThisWorkbook.ActiveSheet 'Tres métodos fáciles de emplear... y uno diferente 'Método 1: Ctrl + Shift + Down (El rango de trabajo debe comenzar en la celda A1) UltFila1 = sh.Range("A1").CurrentRegion.Rows.Count 'Método 2.1: Ctrl + Shift + End (Deben existir celda ocupadas en la columna A) UltFila21 = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row 'Método 2.2: Ctrl + Shift + End (Deben existir celda ocupadas en la columna A) UltFila22 = sh.Range("A" & Rows.Count).End(xlUp).Row 'Método 3: Empleando UsedRange UltFila3 = sh.UsedRange.Rows(sh.UsedRange.Rows.Count).Row 'Método 4: Empleando el método Find UltFila4 = sh.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row MsgBox "Método 1: " & vbTab & UltFila1 & vbCrLf & _ "Método 2.1: " & vbTab & UltFila21 & vbCrLf & _ "Método 2.2: " & vbTab & UltFila22 & vbCrLf & _ "Método 3: " & vbTab & UltFila3 & vbCrLf & _ "Método 4: " & vbTab & UltFila4 & vbCrLf End Sub
Si ejecutamos nuestra macro vemos el resultado en el MsgBox:
Son técnicas muy extendidas, pero no por eso dejan de ser prácticas y fáciles de aplicar.
El objetivo de encontrar esta última fila es siempre el mismo, delimitar nuestros rangos de trabajo de una manera dinámica.
Adicionalmente, y de manera muy similar, podemos obtener el último número de columna empleada.
Nuestra macro la creamos en un módulo estándar de nuestro libro de trabajo.
Sub EncontrarUltimaColumna() Dim sh As Worksheet Dim UltCol1 As Long, UltCol21 As Long, UltCol22 As Long, UltCol3 As Long, UltCol4 As Long Set sh = ThisWorkbook.ActiveSheet 'Método 1: Ctrl + Shift + Right (El rango de trabajo debe comenzar en la celda A1) UltCol1 = sh.Range("A1").CurrentRegion.Columns.Count 'Método 2.1:Ctrl + Shift + End UltCol21 = sh.Cells(1, sh.Columns.Count).End(xlToLeft).Column 'Método 2.2:Ctrl + Shift + End UltCol22 = sh.Range("XFD1").End(xlToLeft).Column 'Método 3: Empleando UsedRange UltCol3 = sh.UsedRange.Columns(sh.UsedRange.Columns.Count).Column 'Método 4: Empleando el método Find UltCol4 = sh.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column MsgBox "Método 1: " & vbTab & UltCol1 & vbCrLf & _ "Método 2.1: " & vbTab & UltCol21 & vbCrLf & _ "Método 2.2: " & vbTab & UltCol22 & vbCrLf & _ "Método 3: " & vbTab & UltCol3 & vbCrLf & _ "Método 4: " & vbTab & UltCol4 & vbCrLf End Sub
El resultado:
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.