QUE PENA , MENSAJE DE 3 0 4 LINEAS

09/05/2007 - 22:57 por LUIS DANNY SALAS | Informe spam
Mil disculpas es que trate de ser lo mas explicito posible pero se me fue la
mano, gracias por estas instrucciones funciona muy bien pero el problema es
que copia solamente la celda R1 y las demas las deja intactas, lo que
necesito es que copie todas las celdas que tienen valores difrentes de cero
en la columna R sin contar R1 y despues de haber hecho el filtrado que las
copie a partir de la primer celda visible de la columna E.



Muchas gracias por la ayuda la valoro muchisimo.







hola, Luis !

en lo que 'termino de masticar' el resto de tu mensaje [que no son tres o
cuatro lineas]... :))
prueba con algo +/- como lo siguiente [aunque es 'practicamente' lo mismo
que ya te habia sugerido]:...

OJO: si el rango sobre el que se hace el filtro avanzado... [A1:K508]
es -tambien-... 'estimado' -?-
existe la posibilidad de que el 'conteo' de areas no resulte lo 'preciso'
que se requiere por el procedimiento -?-

y... si cualquier duda [o informacion adicional -que no se encuntre en el
mensaje anterior-]... comentas ?
saludos,
hector.

Sub Filtrado_1()
With Range("a1:k508")
.AdvancedFilter _
Action:=xlFilterInPlace, _

CriteriaRange:=Workbooks("colega.xls").Worksheets("registro").Range("q165:v1
66"), _
Unique:=True
With .SpecialCells(xlCellTypeVisible)
On Error GoTo Ninguno
IIf(.Areas(1).Rows.Count > 1, _
.Areas(1).Cells(2, 5), .Areas(2).Cells(1, 5)).Select
End With
End With
With Worksheets("nota")
.Range(.Range("r2"), .Range("r65536").End(xlUp)).Copy ActiveCell
End With
Exit Sub
Ninguno:
MsgBox "Criterios no cumplidos !!!"
End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
11/05/2007 - 04:54 | Informe spam
hola, Luis !

... funciona muy bien pero el problema es que copia solamente la celda R1 y las demas las deja intactas
lo que necesito es que copie todas las celdas que tienen valores difrentes de cero en la columna R sin contar R1
y despues de haber hecho el filtrado que las copie a partir de la primer celda visible de la columna E.



hay 'algo' que no acabo de tener por claro...
1) la propuesta omite la celda 'R1' ya que solo considera copiar a partir de la celda 'R2'
-> siempre y cuando el rango que se pasa para los autofiltros [a1:k508] -> NO SEA 'ESTIMADO' <= OJO
-> revisa la observacion al respecto de la propuesta anterior ;)

2) con relacion a las 'celdas que tienen valore diferentes de cero'
lo que yo no puedo saber es que criterios estas usando en el rango que usa la macro con la linea que dice:
CriteriaRange:=Workbooks("colega.xls").Worksheets("registro").Range("q165:v166") -???-

comentas [si hubiera] algun detalle 'perdido en el tintero' ?
saludos,
hector.

__ la consulta/propuesta anterior __
en lo que 'termino de masticar' el resto de tu mensaje [que no son tres o cuatro lineas]... :))
prueba con algo +/- como lo siguiente [aunque es 'practicamente' lo mismo que ya te habia sugerido]:...

OJO: si el rango sobre el que se hace el filtro avanzado... [A1:K508] es -tambien-... 'estimado' -?-
existe la posibilidad de que el 'conteo' de areas no resulte lo 'preciso' que se requiere por el procedimiento -?-

Sub Filtrado_1()
With Range("a1:k508")
.AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=Workbooks("colega.xls").Worksheets("registro").Range("q165:v166"), _
Unique:=True
With .SpecialCells(xlCellTypeVisible)
On Error GoTo Ninguno
IIf(.Areas(1).Rows.Count > 1, _
.Areas(1).Cells(2, 5), .Areas(2).Cells(1, 5)).Select
End With
End With
With Worksheets("nota")
.Range(.Range("r2"), .Range("r65536").End(xlUp)).Copy ActiveCell
End With
Exit Sub
Ninguno:
MsgBox "Criterios no cumplidos !!!"
End Sub
Respuesta Responder a este mensaje
#2 LUIS DANNY SALAS
11/05/2007 - 23:42 | Informe spam
Hector ya pude hacerlo, nada mas tenia que incluir la instruccion :
ActiveSheet.ShowAllData
pues pegaba solo la celda R1 por que las demas estaban ocultas, lo
importante es que ya hace lo que quiero, muchismias gracias, lo unico que me
hace falta es como indicarle en cual columna debe pegar las notas
dependiendo del valor de otra celda, es decir debo indicarle si la pegara en
la columna C (nota1), D(nota2)o E(nota3) dependiendo de si se trata del
primer ,segundo o tercer periodo, el cual estara indicado en la celda A1 de
la hoja concentrado del libro colega.
muchas gracias si podes ayudarme.






"Héctor Miguel" wrote in message
news:%
hola, Luis !

> ... funciona muy bien pero el problema es que copia solamente la celda


R1 y las demas las deja intactas
> lo que necesito es que copie todas las celdas que tienen valores


difrentes de cero en la columna R sin contar R1
> y despues de haber hecho el filtrado que las copie a partir de la primer


celda visible de la columna E.

hay 'algo' que no acabo de tener por claro...
1) la propuesta omite la celda 'R1' ya que solo considera copiar a partir


de la celda 'R2'
-> siempre y cuando el rango que se pasa para los autofiltros


[a1:k508] -> NO SEA 'ESTIMADO' <= OJO
-> revisa la observacion al respecto de la propuesta anterior ;)

2) con relacion a las 'celdas que tienen valore diferentes de cero'
lo que yo no puedo saber es que criterios estas usando en el rango que


usa la macro con la linea que dice:



CriteriaRange:=Workbooks("colega.xls").Worksheets("registro").Range("q165:v1
66") -???-

comentas [si hubiera] algun detalle 'perdido en el tintero' ?
saludos,
hector.

__ la consulta/propuesta anterior __
> en lo que 'termino de masticar' el resto de tu mensaje [que no son tres


o cuatro lineas]... :))
> prueba con algo +/- como lo siguiente [aunque es 'practicamente' lo


mismo que ya te habia sugerido]:...
>
> OJO: si el rango sobre el que se hace el filtro avanzado... [A1:K508]


es -tambien-... 'estimado' -?-
> existe la posibilidad de que el 'conteo' de areas no resulte lo


'preciso' que se requiere por el procedimiento -?-
>
> Sub Filtrado_1()
> With Range("a1:k508")
> .AdvancedFilter _
> Action:=xlFilterInPlace, _
>


CriteriaRange:=Workbooks("colega.xls").Worksheets("registro").Range("q165:v1
66"), _
> Unique:=True
> With .SpecialCells(xlCellTypeVisible)
> On Error GoTo Ninguno
> IIf(.Areas(1).Rows.Count > 1, _
> .Areas(1).Cells(2, 5), .Areas(2).Cells(1, 5)).Select
> End With
> End With
> With Worksheets("nota")
> .Range(.Range("r2"), .Range("r65536").End(xlUp)).Copy ActiveCell
> End With
> Exit Sub
> Ninguno:
> MsgBox "Criterios no cumplidos !!!"
> End Sub


Respuesta Responder a este mensaje
#3 Héctor Miguel
12/05/2007 - 06:43 | Informe spam
hola, Luis !

... lo unico que me hace falta es como indicarle en cual columna debe pegar las notas
dependiendo del valor de otra celda, es decir debo indicarle si la pegara
en la columna C (nota1), D (nota2) o E (nota3) dependiendo de si se trata del primer, segundo o tercer periodo
el cual estara indicado en la celda A1 de la hoja concentrado del libro colega...



la parte del codigo que 'selecciona' la primer celda despues del filtrado es la seccion siguiente:

> With .SpecialCells(xlCellTypeVisible)
> On Error GoTo Ninguno
> IIf(.Areas(1).Rows.Count > 1, _
> .Areas(1).Cells(2, 5), .Areas(2).Cells(1, 5)).Select
> End With



concretamente, la linea que hace el select es: -> .Areas(1).Cells(2, 5), .Areas(2).Cells(1, 5)).Select
donde el 5 [en el caso del ejemplo y consulta original] corresponde a la columna 5 [o sea la columna 'E']

dependiendo del 'valor' [texto o numero] que contenga la celda 'A1'...
podras hacer los ajustes necesarios a la columna correspondiente: 1=A, 2=B, 3=C, etc. etc. etc. ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Héctor Miguel
13/05/2007 - 05:46 | Informe spam
hola, Luis !

... lo tengo claro, pero lo que no quisiera es tener que modificar la macro cada vez que la celda A1 contenga 1, 2 o 3
... si no ella misma... determine cual es el valor en A1 y... pegue los valores en la columna C D o E. [...]



1) de acuerdo con la parte final de la propuesta anterior [que dice +/- asi]:
" >> dependiendo del 'valor' [texto o numero] que contenga la celda 'A1'... "
" >> podras hacer los ajustes necesarios a la columna correspondiente: 1=A, 2=B, 3=C, etc. etc. etc. ;) "

-> si comentas que la celda 'A1' contendra los numeros 1, 2 o 3 [que se corresponderian a las columnas A, B o C]...
-> habria que SUMAR 2 al valor contenido en 'A1' y usarlo como parametro de columna en la propiedad .Cells(fila, columna)

2) lo que te corresponderia 'adaptar' en el codigo es la linea de las 'areas' +/- como sigue:
de: -> .Areas(1).Cells(2, 5), .Areas(2).Cells(1, 5)).Select
a: -> .Areas(1).Cells(2, [a1] + 2), .Areas(2).Cells(1, [a1] + 2)).Select

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la propuesta anterior __
la parte del codigo que 'selecciona' la primer celda despues del filtrado es la seccion siguiente:

> > With .SpecialCells(xlCellTypeVisible)
> > On Error GoTo Ninguno
> > IIf(.Areas(1).Rows.Count > 1, _
> > .Areas(1).Cells(2, 5), .Areas(2).Cells(1, 5)).Select
> > End With

concretamente, la linea que hace el select es: -> .Areas(1).Cells(2, 5), .Areas(2).Cells(1, 5)).Select
donde el 5 [en el caso del ejemplo y consulta original] corresponde a la columna 5 [o sea la columna 'E']

dependiendo del 'valor' [texto o numero] que contenga la celda 'A1'...
podras hacer los ajustes necesarios a la columna correspondiente: 1=A, 2=B, 3=C, etc. etc. etc. ;)
Respuesta Responder a este mensaje
#5 LUIS DANNY SALAS
13/05/2007 - 07:14 | Informe spam
Gracias Hector! , esto si lo tengo claro , pero lo que no quisiera es tener
que modificar la macro cada vez que la celda A1 contenga
1,2 o 3 dependiendo del periodo, si no ella misma en el momento de
ejecutarla determine cual es el valor en A1 y dependiendo de eso pegue los
valores en la columna C D o E.
no se si es posible?
muchas gracias



"Héctor Miguel" wrote in message
news:
hola, Luis !

> ... lo unico que me hace falta es como indicarle en cual columna debe


pegar las notas
> dependiendo del valor de otra celda, es decir debo indicarle si la


pegara
> en la columna C (nota1), D (nota2) o E (nota3) dependiendo de si se


trata del primer, segundo o tercer periodo
> el cual estara indicado en la celda A1 de la hoja concentrado del libro


colega...

la parte del codigo que 'selecciona' la primer celda despues del filtrado


es la seccion siguiente:

> > With .SpecialCells(xlCellTypeVisible)
> > On Error GoTo Ninguno
> > IIf(.Areas(1).Rows.Count > 1, _
> > .Areas(1).Cells(2, 5), .Areas(2).Cells(1, 5)).Select
> > End With

concretamente, la linea que hace el select es: -> .Areas(1).Cells(2, 5),


.Areas(2).Cells(1, 5)).Select
donde el 5 [en el caso del ejemplo y consulta original] corresponde a la


columna 5 [o sea la columna 'E']

dependiendo del 'valor' [texto o numero] que contenga la celda 'A1'...
podras hacer los ajustes necesarios a la columna correspondiente: 1=A,


2=B, 3=C, etc. etc. etc. ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida