Seleccionar y copiar filas

21/02/2007 - 13:50 por anabcn | Informe spam
Hola a todos, soy nueva en excel. Es la primera vez que voy a
programar y necesito ayuda.
Tengo una hoja con 45000 registros y necesito copiar en otra hoja las
filas que contengan una determinada información en la columna j y las
previas.
El caso seria, si la columna j a partir de j2 esta llena, copia toda
la fila y muevete arriba y copiala tambien. Ademas mira si ésta fila
previa tiene j en cuyo caso te mueves a la previa y si no continua la
búsqueda.

Se que aparentemente es sencillo, pero sólo he programado en acces y
tampoco tengo mucha experiencia. Además no tengo ni idea de la
nomenclatura que utiliza excel.

Si alguien me puede ayudar se lo agradeceré.

Muchas gracias

Ana
 

Leer las respuestas

#1 David
21/02/2007 - 16:32 | Informe spam
Hola, anabcn.

Lo que has programado en Access te hará fácil entender el siguiente código:

Sub Copiar()
Dim H2 As String, j, i As Integer, seguir As Boolean
seguir = True
H2 = "Hoja2"
j = ActiveCell.Row
i = 1
If Len(Cells(j, 10).Value) > 0 Then
Range(Cells(j, 1), Cells(j, 10)).Copy
Sheets(H2).Cells(i, 1).PasteSpecial
i = i + 1
j = j - 1
Do While seguir
Range(Cells(j, 1), Cells(j, 10)).Copy
Sheets(H2).Cells(i, 1).PasteSpecial
j = j - 1
i = i + 1
If (Len(Cells(j, 10).Value) = 0 And Len(Cells(j + 1, 10).Value)
= 0) Or j < 1 Then seguir = False
Loop
End If
End Sub

Observa cómo se manejan en este código los objetos Sheets, Range, Cells. Es
muy parecido a VBA en Access. Lo malo de este código es que invierte la
posición de las filas, pero podrías intentar cambiando "i=1" por "i=j", y
luego todas las apariciones de "i=i+1" por "i=i-1".

En cuanto a lo que venga por delante, te recomiendo documentarte en los
siguientes sitios (no serán todos, pero a mí me han servido de mucho):

Foro MVP de Access y VBA
http://www.mvp-access.com
Creado por “Búho”, reúne a varios de los más prestigiosos MVP (Most Valuable
Professional), proveyendo vínculos a sus páginas personales y a “Nuestro
Foro”, un grupo de discusión de muy alta calidad, con secciones dedicadas a
Access, Excel y otros. Se necesita registrarse para poder participar.

Fermu’s Website
http://www.fermu.com/
Sitio lleno de recursos relativos a Excel, Windows y similares: artículos,
tips y otros…

Mi Página
http://www.geocities.com/sdgm04/03-VBA.html
En construcción permanente (quisiera, pero el tiempo me limita mucho).
Ejemplos para descargar sobre aplicaciones varias de VBA orientadas a Excel.

AJP Excel Information
http://www.andypope.info
Docenas de tips y ejemplos de aplicaciones de Excel para descargar (con y
sin código).

Sitios con Ejemplos:
http://www.engineering.usu.edu/cee/...amples.htm

http://www.mindspring.com/~tflynn/excelvba.html

http://www.excelworker.virtuabyte.c...amp;Itemid'

Cursos:

http://www.cidse.itcr.ac.cr/cursos-...index.html

http://www.lawebdelprogramador.com/...rar.php?id7&texto=Excel

http://www.angelfire.com/biz7/julia...macros.htm

Foros y material de apoyo:

http://www.sistemaslym.net/vba/exce...tml#Macros

http://www.oaltd.co.uk/

http://j-walk.com/ss/excel/tips/tip23.htm

http://www.sistemaslym.net/vba/excel/

http://www.excelguru.ca/node/18


Bueno, por ahora creo que es suficiente para que te entretengas un poco.

Saludos.



"anabcn" escribió:

Hola a todos, soy nueva en excel. Es la primera vez que voy a
programar y necesito ayuda.
Tengo una hoja con 45000 registros y necesito copiar en otra hoja las
filas que contengan una determinada información en la columna j y las
previas.
El caso seria, si la columna j a partir de j2 esta llena, copia toda
la fila y muevete arriba y copiala tambien. Ademas mira si ésta fila
previa tiene j en cuyo caso te mueves a la previa y si no continua la
búsqueda.

Se que aparentemente es sencillo, pero sólo he programado en acces y
tampoco tengo mucha experiencia. Además no tengo ni idea de la
nomenclatura que utiliza excel.

Si alguien me puede ayudar se lo agradeceré.

Muchas gracias

Ana


Preguntas similares