Macro para autorellenar

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Macro para autorellenar

Notapor jalonsor » 04 Abr 2006 14:52

Hola
Tengo un excel en el que me salen los registros únicos de una base de datos. Quisiera saber cómo puedo definir una macro que haga que se copie una formula hasta el final de la la tabla.

Me explico

tengo dos columnas. en la columna A un valor y en la B una fórmula. Nunca sé cuantos valores voy a tener, pero quiero tener tantas fórmulas como valores.
Quiero una macro que me arrastre la fórumula que tengo en la celda b1 hasta B? siendo ? la última celda ocupada de A.

Os agradezco de antemano la ayuda.

saludos!
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
jalonsor
Miembro Frecuente
Miembro Frecuente
 
Registrado: 30 Dic 2005 07:48

Re: Macro para autorellenar

Notapor bradx3 » 04 Abr 2006 16:13

AVER QUE TAL ESTO:

I = 1 ' o desde la fila donde empiesen los datos
do
i = i+1
loop until cells(i,1).value = "" 'se dentendra donde ya no encuentre datos y
'asignara el ese valor a I
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
bradx3
Miembro Frecuente
Miembro Frecuente
 
Registrado: 13 Oct 2004 16:45
Ubicación: mexico

Notapor jalonsor » 05 Abr 2006 11:14

No consigo ponerla en práctica. soy un inutl de vbe

Tengo 6 campos que se me rellenan automáticamente con el autofiltro. Luego tres columnas más que me hacen unos cálculos en cada registro del autofiltro

Por tanto you quisisera que la macro me arrastrara las fórmulas que hay entre la columna g (a partir de la fila 20) y la columna I, hasta la última fila de la columna A
gracias
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
jalonsor
Miembro Frecuente
Miembro Frecuente
 
Registrado: 30 Dic 2005 07:48

Re: Macro para autorellenar

Notapor yijo » 18 May 2006 18:41

Por qué no enví­as un archivo de ejemplo para ver qué podemos hacer?
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
yijo
Miembro Frecuente
Miembro Frecuente
 
Registrado: 07 May 2005 11:03

Re: Macro para autorellenar

Notapor ST » 18 May 2006 19:02

si te entedi bien,creo que para eso no necesitas macros

posicionate en la columna B ,en la esquina inferior derecha de la celda donde tienes la formula (te debe aparecer una pequeña cruz delgada)
ahora solo da doble clic y se rellenaran las celdas con la formula ,igualndola a los datos de la columna "A"

si no es esto entonces me uno a yijo :twisted:
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ST
Miembro Frecuente
Miembro Frecuente
 
Registrado: 06 Jun 2005 17:56
Ubicación: Acapulco

Notapor Superplanilla » 26 May 2006 09:22

Para hacerlo con macros.

Se detecta la última fila con uf = Range("A1").End(xlDown).Row
Se detecta el rango a rellenar con rango = Range(Cells(2,2),Cells(uf,2)).Address
Luego se copia la fórmula de B1 al resto del rango Range("B1").Copy Range(rango)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Superplanilla
Miembro Frecuente
Miembro Frecuente
 
Registrado: 12 May 2005 10:44
Ubicación: Buenos Aires

Notapor KL » 26 May 2006 09:38

Hola chicos,

Superplanilla";p="26697 escribió:Se detecta la última fila con uf = Range("A1").End(xlDown).Row
Se detecta el rango a rellenar con rango = Range(Cells(2,2),Cells(uf,2)).Address
Luego se copia la fórmula de B1 al resto del rango Range("B1").Copy Range(rango)


Mas opciones:

Código: Seleccionar todo
Sub test1()
    [B2].AutoFill Range([B2], [A65536].End(xlUp).Offset(, 1))
End Sub


Código: Seleccionar todo
Sub test2()
    [B2].Copy Range([B2], [A65536].End(xlUp).Offset(, 1))
End Sub


Código: Seleccionar todo
Sub test3()
    Range([B2], [A65536].End(xlUp).Offset(, 1)) = [B2].FormulaR1C1
End Sub


Código: Seleccionar todo
Sub test4()
    Range([B2], [A65536].End(xlUp).Offset(, 1)) = "=SUM(RC[1]:RC[3])"
End Sub
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Re: Macro para autorellenar

Notapor KL » 26 May 2006 09:40

perdon, se me olvidaba decir que el orden de mi preferncia es justo a la inversa:

Test4
Test3
Test1
Test2
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Re: Macro para autorellenar

Notapor Febreroocho » 28 May 2006 07:16

Aki te enví­o una xp sobre una macro que hice y me parece q tambien te puede ser util. Hay q adecuar a tus necesidades.
Saludos
8/2

Range("ab2").Select
Do Until ActiveCell.Offset(0, -1) = "" 'mientras la celda anterior este escrita...
ActiveCell.FormulaR1C1 = "=rc[-1]*rc[-12]"
ActiveCell.Offset(1, 0).Select 'luego pasa a la celda inferior dentro de la misma columna y asi hasta que llega hasta la ultima celda escrita...
Loop
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Febreroocho
Miembro Frecuente
Miembro Frecuente
 
Registrado: 10 May 2006 22:19

Re: Macro para autorellenar

Notapor KL » 28 May 2006 09:10

Hola chicos,
Febreroocho";p="26750 escribió:Range("ab2").Select
Do Until ActiveCell.Offset(0, -1) = "" 'mientras la celda anterior este escrita...
ActiveCell.FormulaR1C1 = "=rc[-1]*rc[-12]"
ActiveCell.Offset(1, 0).Select 'luego pasa a la celda inferior dentro de la misma columna y asi hasta que llega hasta la ultima celda escrita...
Loop


El codigo propuesto por Febreroocho es ineficiente y por tanto no recomendable por dos razones fundamentales:
1) es un bucle que recorre el rango celda tras celda (imaginaos 20.000 celdas)
2) usa el metodo Select con cada una de las celdas, lo cual aparte de innecesario, ralentiza aun mas el codigo.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Re: Macro para autorellenar

Notapor zato » 15 Jun 2006 18:41

Muchas pero muchas gracias KL,

Lo que se pierde uno por no preguntar..........

Esto lo necesitaba hace mucho tiempo y hacia lo que dice superplanilla, lo malo es que lo hago en libros con muchos rangos cortados (separados) así­ que a veces me confundo en el codigo, pero tus 4 soluciones las probe y funcionan perfectamente,

Muchas gracias,
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
zato
Miembro Frecuente
Miembro Frecuente
 
Registrado: 25 Nov 2005 19:02


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot], Google [Bot], livermax y 7 invitados