Seleccionar y copiar celdas filtradas en Excel2007

07/11/2007 - 23:09 por Faiverlgr | Informe spam
Buen dia,

Tengo un código de VB6 en Excel-2003 que consiste en crear el filtro a un
listado de datos y con una condición seleccionar ciertos registros para
luego copiarlos y pegarlos en otra ubicación.

Al correr este mismo código en Excel-2007, cuando selecciona y pega la
información seleccionada por los filtros, se pega como si no los hubiera, es
decir, me pega el listado completo.

No sé en qué diferenciar el código para que en las dos versiones me realice
la misma operación.

Agradezco su colaboración y si me pueden regalar un ejemplo.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
07/11/2007 - 23:57 | Informe spam
hola, (...) ?

Tengo un codigo de VB6 en Excel-2003 que consiste en crear el filtro a un listado de datos
y con una condicion seleccionar ciertos registros para luego copiarlos y pegarlos en otra ubicacion.
Al correr este mismo codigo en Excel-2007, cuando selecciona y pega la informacion seleccionada por los filtros
se pega como si no los hubiera, es decir, me pega el listado completo.
No se en que diferenciar el codigo para que en las dos versiones me realice la misma operacion.
Agradezco su colaboracion y si me pueden regalar un ejemplo...



si expones el codigo, evitaras la necesidad de suponer o inventar situaciones que pudieran ser diferentes de tu situacion :D

saludos,
hector.
Respuesta Responder a este mensaje
#2 Faiverlgr
09/11/2007 - 03:38 | Informe spam
Este es el código:
'IMPLEMENTA EL AUTOFILTRO
ActiveSheet.Range("C4:s4").AutoFilter
'SELECCIONA LAS CELDAS QUE CUMPLEN LA CONDICIÓN
Selection.AutoFilter Field:, Criteria1:=">=1", VisibleDropDown:=False
'SELECCIONO UNA DE LAS COLUMNAS QUE QUIERO COPIAR
Range("C4:C250").Copy
'SELECCIONO OTRA HOJA
Sheets("PED").Select
'PEGO LOS DATOS
Range("D5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

'CON ESTE CÓDIGO EN EXCEL2003 ME PEGARÍA SOLO LOS DATOS DE LAS CELDAS
SELECCIONADAS EN EL FILTRO (bien)
' PERO EN EXCEL2007 FILTRA BIEN PERO PEGA LOS DATOS COMO SI NO FILTRARA
NADA OSEA TODOS (mal)



"Héctor Miguel" escribió en el mensaje
news:
hola, (...) ?

Tengo un codigo de VB6 en Excel-2003 que consiste en crear el filtro a un
listado de datos
y con una condicion seleccionar ciertos registros para luego copiarlos y
pegarlos en otra ubicacion.
Al correr este mismo codigo en Excel-2007, cuando selecciona y pega la
informacion seleccionada por los filtros
se pega como si no los hubiera, es decir, me pega el listado completo.
No se en que diferenciar el codigo para que en las dos versiones me
realice la misma operacion.
Agradezco su colaboracion y si me pueden regalar un ejemplo...



si expones el codigo, evitaras la necesidad de suponer o inventar
situaciones que pudieran ser diferentes de tu situacion :D

saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
09/11/2007 - 06:38 | Informe spam
hola, (...) ???

hay un metodo que (generalmente) resulta ser mas "sano" y es transparente entre versiones

(te sugiero) en lugar de seleccionar un rango "excedido" (que de todas formas "copia" celdas en blanco)
cambia la instruccion que estas utilizando actualmente:

de: -> Range("C4:C250").Copy
a: -> ActiveSheet.AutoFilter.Range.Resize(, 1).SpecialCells(xlCellTypeVisible).Copy

(suponiendo que la copia la necesitas del primer campo/columna en los autofiltros) -???-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la consulta original __
Este es el codigo:
'IMPLEMENTA EL AUTOFILTRO
ActiveSheet.Range("C4:s4").AutoFilter
'SELECCIONA LAS CELDAS QUE CUMPLEN LA CONDICIÓN
Selection.AutoFilter Field:, Criteria1:=">=1", VisibleDropDown:=False
'SELECCIONO UNA DE LAS COLUMNAS QUE QUIERO COPIAR
Range("C4:C250").Copy
'SELECCIONO OTRA HOJA
Sheets("PED").Select
'PEGO LOS DATOS
Range("D5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

'CON ESTE CÓDIGO EN EXCEL2003 ME PEGARÍA SOLO LOS DATOS DE LAS CELDAS SELECCIONADAS EN EL FILTRO (bien)
' PERO EN EXCEL2007 FILTRA BIEN PERO PEGA LOS DATOS COMO SI NO FILTRARA NADA OSEA TODOS (mal)
Respuesta Responder a este mensaje
#4 Faiverlgr
10/11/2007 - 00:59 | Informe spam
Muchas Gracias, Miguel

Perfecto! me copia el rango de la primera columna del filtro (Columa 'C'),
pero quiero copiar una columna 'x' que se encuentra a la derecha('D' ó 'E'),
cómo le indico qué columna copiar?


"Héctor Miguel" escribió en el mensaje
news:u$
hola, (...) ???

hay un metodo que (generalmente) resulta ser mas "sano" y es transparente
entre versiones

(te sugiero) en lugar de seleccionar un rango "excedido" (que de todas
formas "copia" celdas en blanco)
cambia la instruccion que estas utilizando actualmente:

de: -> Range("C4:C250").Copy
a: -> ActiveSheet.AutoFilter.Range.Resize(,
1).SpecialCells(xlCellTypeVisible).Copy

(suponiendo que la copia la necesitas del primer campo/columna en los
autofiltros) -???-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la consulta original __
Este es el codigo:
'IMPLEMENTA EL AUTOFILTRO
ActiveSheet.Range("C4:s4").AutoFilter
'SELECCIONA LAS CELDAS QUE CUMPLEN LA CONDICIÓN
Selection.AutoFilter Field:, Criteria1:=">=1",
VisibleDropDown:=False
'SELECCIONO UNA DE LAS COLUMNAS QUE QUIERO COPIAR
Range("C4:C250").Copy
'SELECCIONO OTRA HOJA
Sheets("PED").Select
'PEGO LOS DATOS
Range("D5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

'CON ESTE CÓDIGO EN EXCEL2003 ME PEGARÍA SOLO LOS DATOS DE LAS CELDAS
SELECCIONADAS EN EL FILTRO (bien)
' PERO EN EXCEL2007 FILTRA BIEN PERO PEGA LOS DATOS COMO SI NO
FILTRARA NADA OSEA TODOS (mal)




Respuesta Responder a este mensaje
#5 Héctor Miguel
10/11/2007 - 01:29 | Informe spam
hola, ?

... me copia el rango de la primera columna del filtro (Columa 'C')
pero quiero copiar una columna 'x' que se encuentra a la derecha('D' ó 'E')
como le indico qué columna copiar?



solo intercala un Offset(, n_Col) <= entre el Resize y el SpecialCells (p.e.)
considerando que la primer columna con los autofiltros es la columna C...

copiar la columna D (una columna a la derecha de C)...
-> ActiveSheet.AutoFilter.Range.Resize(, 1).Offset(, 1).SpecialCells(xlCellTypeVisible).Copy

copiar la columna F (tres columnas a la derecha de C)...
-> ActiveSheet.AutoFilter.Range.Resize(, 1).Offset(, 3).SpecialCells(xlCellTypeVisible).Copy

si cualquier duda... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida