Selección variable de base de datos

Lo que necesito es que la base se mueva conforme se aumentan celdas

Sub Macro5()
'
' Macro5 Macro
' guardar archivo para macro 

'
Range ("A2:F2").Select
Range (Selection, Selection .End (xlDown)).Select 'lo que se seleccione aqui nombrarlo como una base
ActiveWorkbook . Names . Add Name:="pendientes", Refers To R1C1:= _
"=Selection" ' de las celdas que se seleccionan con el Range ( Selection,...

ActiveWorkbook . SaveAs Filename:= _
"C:\Users \lfcerecedo \Documents\ pendientesmacro.xlsm", FileFormat:= _
xlOpenXML Workbook Macro Enabled, CreateBackup : = False

End Sub

1 Respuesta

Respuesta
1

21/07/16
** Rango dinámico **

Buenas, Luis

Te propongo una solución más eficiente que una macro para que un rango con nombre definido se adapte a la cantidad de lineas que ocupe.

En el cuadro de definición de nombre de rango (Fórmulas - Administrador de Nombres o Ctrl + F3), haz click en el botón "Nuevo" coloca el nombre que deseas para tu nombre y en "Se refiere a:" coloca ésta fórmula:

=DESREF(Hoja1!A2;0;0;CONTARA('Hoja1!A2:A600);CONTARA(Hoja1!A2:AA2))

Quedaría algo así como esto:

Luego, Aceptar.

Listo, Pendientes será tan alto como filas tenga y tan ancho como columnas haya en ese rango, automáticamente. Sin macros, sin intervención humana.

Notarás que cuenta las filas hasta la 600, si tu base fuere a tener más de esa cantidad de líneas aumenta ese número.

Para el ancho de la base cuenta las columnas y estoy asumiendo que no hay columnas sin títulos o en blanco. Caso contrario deberá adicionarse el número de columnas vacías al último argumento de la función.

Para que calcule los limites correctamente, tanto para la altura como para el ancho, no debería haber celdas ocupadas debajo de la última real de la base ni a la derecha de la última columna.

Espero que te sirva.

Un abrazo

Fernando

.

lo que pasa es que la base que nombro la ocupo para otra macro es un proceso que realizo diario y sobre las filas nuevas que aparecen agrego observaciones esta macro la requiero para hacer la actualización automática

en los #N/A son las nuevas observaciones que tengo que agregar las guardo, creo la base y el día siguiente ya están registradas y solo agrego las nuevas 

22/07/16

Hola, Luis

Tal vez yo no esté entendiendo tu secuencia de trabajo, pero me parece que una vez que el nombre de rango estuviera definido -como fuere- los #N/A seguirán apareciendo. Luego, al agregar a tu base las nuevas observaciones, el rango se extenderá autmáticamente para incluirlas.

De todos modos, por si no te hubiera entendido, te envío la rutina de VBA que define el rango de acuerdo a las lineas que ocupe al momento de ejecutarla.

Sub TuMacro()
'Colocar al inicio:
Dim NuevoRango As Range
'*** Instrucciones de redefinición de rango:
' Variable, celda superior izquierda del rango a definir:
CeldaIni = "A2"
Set NuevoRango = Range(CeldaIni).CurrentRegion
ActiveWorkbook.Names.Add Name:="Pendientes", RefersToR1C1:=NuevoRango
'al final de tu Rutina coloca esta instrucción:
Set NuevoRango = Nothing
End Sub

Nota que -ademas de servir para redefinir el nombre- NuevoRango sirve como el rango de la base Pendientes por si necesitas operar con el más adelante.

Es otra solución que tal vez te sea útil.

Comentame si te sirvió.

Saludos
Fernando

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas