Excel - Macro que al re ejecutarse anote en una celda más abajo que la anterior vez

 
Vista:
sin imagen de perfil

Macro que al re ejecutarse anote en una celda más abajo que la anterior vez

Publicado por armuso (9 intervenciones) el 05/05/2016 03:18:39
Hola, situado el cursor en la celda f15, requiero una macro que copie las celdas aa29, ab29 y ac29
y las pegue como valor en las celdas f15, g15 y h15. Hecho esto que el cursor se sitúe en f16.
Al ejecutar nuevamente la macro, copie las celdas aa29, ab29 y ac29 y las pegue como valor en
las celdas f16, g16 y h16. Hecho esto que el cursor se sitúe en f17 para ejecutar la macro cuando
se requiera y así sucesivamente.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro que al re ejecutarse anote en una celda más abajo que la anterior vez

Publicado por Andres Leonardo (1583 intervenciones) el 05/05/2016 16:11:37
Pues deja el valor en una celda en otra hoja .... dandole un valor inicial y que vaya actualizando este valor despues de ejecutarse

**Tienes tu codigo para tratar de ponerle ese valor adicional...

Slaudos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Macro que al re ejecutarse anote en una celda más abajo que la anterior vez

Publicado por armuso (9 intervenciones) el 05/05/2016 16:39:11
Realmente soy un novato en esto, algo entiendo, creo comprender lo que me dices, sin embargo no tengo los conocimientos para editar la macro y generar el código, podrías ayudarme por favor, desde ya gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Macro que al re ejecutarse anote en una celda más abajo que la anterior vez

Publicado por Andres Leonardo (1583 intervenciones) el 05/05/2016 20:42:47
Si claro .. pero dame la macro que tienes o el libro o algo para empezar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Macro que al re ejecutarse anote en una celda más abajo que la anterior vez

Publicado por agustin (149 intervenciones) el 06/05/2016 03:48:10
Puedes usar una variable estatica la cual en un bucle comprueba si esta bacía la celda Fx y si no no está se incrementa y sale del bucle cuando encuentre la que esta vacia o una variable global la cual inicialices al abrir el libro y vas incrementando cada vez que escribas en una celda para que la próxima vez vayas a la siguiente.
También, si donde quieres copiarlo es la primera fila donde esa celda este vacia puedes haces algo como:
1
2
Dim UltLinea As Long
UltLinea = Range("F" & Rows.Count).End(xlUp).Row +1
Con lo que siempre apuntará a la que le sigue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Macro que al re ejecutarse anote en una celda más abajo que la anterior vez

Publicado por agustin (149 intervenciones) el 06/05/2016 13:21:10
Pongo ejemplo para los 3 casos.

Caso 1 donde buscamos la primera celda vacia al final de la columna F:
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Prueba1()
    Dim UltLinea As Long
 
    UltLinea = Range("F" & Rows.Count).End(xlUp).Row
    If UltLinea = 1 Then
        If Not IsEmpty(Range("F" & UltLinea)) Then
            UltLinea = UltLinea + 1
        End If
    Else
        UltLinea = UltLinea + 1
    End If
    Range("F" & UltLinea).Value = Range("A1").Value
End Sub

Caso 2 donde se usa una variable global:
1
2
3
4
5
6
7
8
9
10
11
12
'Este codigo va en el codigo de ThisWorkbook
Public Posicion As Long
 
Private Sub Workbook_Open()
    Posicion = 10 'Aqui iniciamos la posicion inicial a la deseada
End Sub
 
'Este codigo va en la hoja donde se quiera usar
Private Sub Prueba2()
    Range("F" & ThisWorkbook.Posicion).Value = Range("A1").Value
    ThisWorkbook.Posicion = ThisWorkbook.Posicion + 1
End Sub

Caso 3 donde se usa una variable estatica:
1
2
3
4
5
6
7
8
9
Private Sub Prueba3()
    Static p As Long
 
    If p = 0 Then
        p = 10 'Aqui se pone donde se quiere que empiece
    End If
    Range("F" & p).Value = Range("A1").Value
    p = p + 1
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Macro que al re ejecutarse anote en una celda más abajo que la anterior vez

Publicado por armuso (9 intervenciones) el 06/05/2016 17:29:14
aquí va el problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Macro que al re ejecutarse anote en una celda más abajo que la anterior vez

Publicado por armuso (9 intervenciones) el 07/05/2016 00:39:19
FUNCIONÓ PERFECTA, ALGUNOS RETOQUES POR EL AMBIENTE GENERAL, PERO SOLUCIONÉ EL PROBLEMA

MUCHAS GRACIAS, UN GRAN ABRAZO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar