Ayuda en macro

07/08/2008 - 17:58 por Edixon | Informe spam
Hola Grupo necesito de su ayuda nuevamente en lo siguiente:

tengo en la hoja 1 una base de datos grande con 15000 filas y 10
columnas

en la columna A tengo referencias (numero) y desde la columna b hasta
la m caracterististicas asociadas a esas referencias.

Columna M (Valores >= 0)

Las referencias de las columna A pueden ser que tengan caracteristicas
en mas de una fila ( Si esta en a1 la referencia y tiene 3
caracteristicas las celdas a2 y a3 estaran en blanco pero se
sobreentiente que son caractaristicas de la referencia que está en a1)

Lo que necesito es que en la hoja 2 se reflejen solo las referencias
junto a todas sus caracteristicas, pero solo los que tengan un valor
en la columna M > 0

Aqui les pongo el ejemplo para que se visualise mejor:

Hoja 1
______A______B___________M
1____12345___xxx____xxxx______542
2____________xxx____xxxx______
3____________xxx____xxxx______
4____12347___xxx____xxxx______874
5____________xxx____xxxx______
6____154_____xxx____xxxx______
7____8764____xxx____xxxx______5


Hoja 2

______A______B___________M
1____12345___xxx____xxxx______542
2____________xxx____xxxx______
3____________xxx____xxxx______
4____12347___xxx____xxxx______874
5____________xxx____xxxx______
6____8764____xxx____xxxx______5

Espero se halla entendido y de antemano gracias por su ayuda.

Preguntas similare

Leer las respuestas

#1 AnSanVal
07/08/2008 - 19:49 | Informe spam
Prueba con:

Sub PasaDatos()
Dim celda As Range
Dim ref, fila As Long
Worksheets("Hoja1").Range("A1:A" & Cells(65535, 1).End(xlUp).Offset(1).Row).Select
For Each celda In Selection
If celda > 0 And Cells(celda.Row, 13) > 0 Then
ref = celda.Value
Else
If celda > 0 Then ref = 0
End If
If ref > 0 Then
fila = fila + 1
celda.EntireRow.Copy Destination:=Worksheets("Hoja2").Cells(fila, 1)
End If
Next celda
End Sub

Saludos desde Tenerife: Antonio.
***********************************************
"Edixon" escribió en el mensaje
news:

Hola Grupo necesito de su ayuda nuevamente en lo siguiente:

tengo en la hoja 1 una base de datos grande con 15000 filas y 10
columnas

en la columna A tengo referencias (numero) y desde la columna b hasta
la m caracterististicas asociadas a esas referencias.

Columna M (Valores >= 0)

Las referencias de las columna A pueden ser que tengan caracteristicas
en mas de una fila ( Si esta en a1 la referencia y tiene 3
caracteristicas las celdas a2 y a3 estaran en blanco pero se
sobreentiente que son caractaristicas de la referencia que está en a1)

Lo que necesito es que en la hoja 2 se reflejen solo las referencias
junto a todas sus caracteristicas, pero solo los que tengan un valor
en la columna M > 0

Aqui les pongo el ejemplo para que se visualise mejor:

Hoja 1
______A______B___________M
1____12345___xxx____xxxx______542
2____________xxx____xxxx______
3____________xxx____xxxx______
4____12347___xxx____xxxx______874
5____________xxx____xxxx______
6____154_____xxx____xxxx______
7____8764____xxx____xxxx______5


Hoja 2

______A______B___________M
1____12345___xxx____xxxx______542
2____________xxx____xxxx______
3____________xxx____xxxx______
4____12347___xxx____xxxx______874
5____________xxx____xxxx______
6____8764____xxx____xxxx______5

Espero se halla entendido y de antemano gracias por su ayuda.
#2 Edixon
08/08/2008 - 03:57 | Informe spam
Hola AnSanVal

Gracias por tu ayuda, pero no me funciona muy bien

Me da un error en la siguiente instruccion

Worksheets("Hoja1").Range("A1:A" & Cells(65535,
1).End(xlUp).Offset(1).Row).Select

Gracias nuevamente
#3 Edixon
08/08/2008 - 04:18 | Informe spam
Disculpa solo tenia que ejecutarla desde la hoja 1

Gracias me funciono perfecto

Dios te Bendiga
#4 Héctor Miguel
08/08/2008 - 05:37 | Informe spam
hola, chicos ! (solo por no "dejarla en el tintero") :))

asumiendo que los datos de hoja1 tienen sus titulos en la fila1 desde las columnas A:M (A y M valores numericos)
datos a partir de la fila 2... y que tienes libre a partir de la columna N ... -> (el codigo usa el rango O1:O2 para)...
usar los filtros avanzados (que) podria resultar en un proceso mas rapido (en lugar de avances "fila-por-fila")

Sub mi_Filtro_Especial()
With Worksheets("hoja1").Range("a1").CurrentRegion
.Parent.Range("o2").Formula = "=or(and(a2>0,m2>0),and(a2="""",m2=""""))"
.AdvancedFilter _
Action:=xlFilterCopy, CriteriaRange:=.Range("o1:o2"), _
CopyToRange:=Worksheets("hoja2").Range("a1")
.Parent.Range("o2").ClearContents
End With
End Sub

saludos,
hector.
#5 Edixon
08/08/2008 - 18:49 | Informe spam
Hola Héctor gracias nuevamente por ayudar.

me gusto tu aporte es rapido el proceso.

en la fila 1 desde la A1 hasta la M1 son titulos (texto)

Las columnas F,G y L estan ocultas(me gusta que tu aporte no las
muestra al momento de hacer el pegado en la hoja 2, estas contienen
formulas)

pero hubo unos detalles:

no se colocan las referencias de la columna 1 ( es un valor)

Como las columnas desde la i a la m son formulas que se relacionan con
las F G y L quedaron en blanco esos valores

Creo que estaria perfecta si solo copiara los valores mas no las
formulas eso me serviria

Gracias por tu ayuda de antemano
Ads by Google
Search Busqueda sugerida