Copiar,pegar celdas hasta que una este vacia

02/11/2012 - 13:04 por pomares71 | Informe spam
¡ Hola !
Tengo una hoja de un libro excel en la que tengo una lista de cursos.
Esta lista es variable, es decir, que puede que sean 28 cursos, como tambien podrian ser 30, o 25, o mas o menos, o sea que el numero de cursos puede variar.
Lo que quiero hacer es una macro, que recorra esta lista, y valla copiando cada uno de los valores de las celdas de esta lista variable, y las vaya pegando en una celda de otro libro, hasta que encuentre una celda vacia, y se pare.
ahora estoy usando este codigo que funciona bien, pero solo recorre de la fila 2 a la 29, que es el rango de la lista, pero si vario la lista y le añado una fila, o se la quito ya no me funciona.
Private Sub cb_Aceptar_Click()
Application.ScreenUpdating = False
Workbooks.Open Filename:=ThisWorkbook.Path & "\Libro1.xlsm", UpdateLinks:=0
Workbooks.Open Filename:=ThisWorkbook.Path & "\Listado Alumnos.xlsm", UpdateLinks:=0
Workbooks.Open ThisWorkbook.Path & "\Libro1.xlsm"
Workbooks.Open ThisWorkbook.Path & "\Listado Alumnos.xlsm"
Workbooks("Libro1.xlsm").Activate
Sheets.Add Type:=ThisWorkbook.Path & "\NUEVO LISTADO.xltm"
Dim I As Integer
For I = 2 To 29
Sheets("Hoja1").Range("A4").Value = Hoja1.Range("N" & I).Value
Sheets.Add Type:=ThisWorkbook.Path & "\NUEVO LISTADO.xltm"
DoEvents
Next
'aqui hay mas acciones
End Sub
Please ayuda
 

Leer las respuestas

#1 dave
05/11/2012 - 19:25 | Informe spam
pomares71 escribió el 02/11/2012 13:04 :
¡ Hola !
Tengo una hoja de un libro excel en la que tengo una lista de cursos.
Esta lista es variable, es decir, que puede que sean 28 cursos, como tambien
podrian ser 30, o 25, o mas o menos, o sea que el numero de cursos puede
variar.
Lo que quiero hacer es una macro, que recorra esta lista, y valla copiando cada
uno de los valores de las celdas de esta lista variable, y las vaya pegando en
una celda de otro libro, hasta que encuentre una celda vacia, y se pare.
ahora estoy usando este codigo que funciona bien, pero solo recorre de la fila
2 a la 29, que es el rango de la lista, pero si vario la lista y le
añado una fila, o se la quito ya no me funciona.
Private Sub cb_Aceptar_Click()
Application.ScreenUpdating = False
Workbooks.Open Filename:=ThisWorkbook.Path & "Libro1.xlsm",
UpdateLinks:=0
Workbooks.Open Filename:=ThisWorkbook.Path & "Listado
Alumnos.xlsm", UpdateLinks:=0
Workbooks.Open ThisWorkbook.Path & "Libro1.xlsm"
Workbooks.Open ThisWorkbook.Path & "Listado Alumnos.xlsm"
Workbooks("Libro1.xlsm").Activate
Sheets.Add Type:=ThisWorkbook.Path & "NUEVO LISTADO.xltm"
Dim I As Integer
For I = 2 To 29
Sheets("Hoja1").Range("A4").Value =
Hoja1.Range("N" & I).Value
Sheets.Add Type:=ThisWorkbook.Path & "NUEVO LISTADO.xltm"
DoEvents
Next
'aqui hay mas acciones
End Sub
Please ayuda


Intenta de esta forma, solo cambia el for I=x to next por do while loop.

do while not isempty(activecell.value)
Sheets("Hoja1").Range("A4").Value =
Hoja1.Range("N" & I).Value
Sheets.Add Type:=ThisWorkbook.Path & "\NUEVO LISTADO.xltm"
DoEvents
ActiveCell.Offset(1, 0).Activate
loop

Preguntas similares