varios en commandbutton

07/11/2007 - 12:48 por JForero | Informe spam
Buen día grupo

Pensando en simplificar un proceso deseo hacer lo siguiente:

1-. Tengo un libro llamado informes.xls, en la hoja1 tengo un commandbutton

2-. Tengo un libro llamado base.xls con la información a procesar

3-. el command button debe abrir el libro base.xls, copiar las columnas
B,C,D, H, J y pegarmelas en el libro informes.xls en una hoja nueva
(insertada a la derecha de hoja1) que se llame info_fecha (donde fecha es la
fecha del día de proceso)

4-. En la columna C de info_fecha tengo la fecha de colocación del dato,
necesito insertar en la siguiente columna vacía el número de días
transcurridos entre la columna C y la fecha de proceso

5-. Ahora necesito filtrar de info_fecha, de la columna D las filas que
digan "Finalizado" y crear una hoja nueva que se llame Final_fecha donde
fecha es la fecha del día de proceso)

6-. Luego filtrar también de la columna D las filas que digan "En Prueba" y
crear una hoja nueva que se llame Prueba_fecha donde fecha es la fecha del
día de proceso)

7-. Finalmente filtrar de la columna C las filas que tengan la fecha del día
de proceso y crear una hoja nueva que se llame Hoy_fecha donde fecha es la
fecha del día de proceso)

al hacer esto a diario, en el libro se acumularán info_fecha por cada día de
proceso y las hojas filtradas también en cada día de proceso.

He tratado de hacer todo esto en el botón, ya puedo abrir el libro base.xls,
filtrar pero no he podido pegarlos en las hojas nuevas y tengo errores que
no he podido resolver.

gracias por la colaboración

Preguntas similare

Leer las respuestas

#6 JForero
11/11/2007 - 23:35 | Informe spam
Hola Hector, que pena tantas molestias, ahora me sale otro error

error definido por la aplicación o el objeto

al depurar se presenta en:

.AutoFill .Resize(Range("a65536").End(xlUp).Row - 1), xlFillDefault

Gracias... Jorgef.

"Héctor Miguel" escribió en el mensaje
news:
hola, Jorge !

he puesto en practica las lineas que planteas, pero me produce el
siguiente error
"1004" en tiempr de ejecucion: error en el metodo 'Range' de objeto
'_Worksheet'
al depurar es en:
nCols = Range(Base).Count



(segun mis pruebas, no debieras obtener errores -> con los supuestos de la
propuesta-) -?-

1) de la linea que causa el error segun comentas: -> nCols =
Range(Base).Count
a) "nCols" es una variable definida con el tipo de datos Byte (enteros
con alcance de 0 a 255)
b) "Base" es una variable definida como constante: -> Private Const
Base As String = "b1:d1,h1,j1"
c) la instruccion: -> nCols = Range(Base).Count "debiera" devolver el
numero entero 5 (cinco)
como podras ver, el contenido de (Base) es la referencia a tus 5
celdas/columnas [B1, C1, D1, H1, H1]
d) asumo que btnGernerarReporte es un boton de la barra de herramientas
cuadro de controles incrustado en la hoja

2) revisa en el editor de vba, en (menu) herramientas / referencias...
por si hubiera perdida alguna referencia a librerias basicas que diga:
FALTA: xxx o MISSING: xxx

comentas (si hubiera) algun detalle mas significativo ? (que pudiera
interferir con la ejecucion de la macro)
saludos,
hector.

__ las consultas anteriores __
... si hay una alternativa de ceros que me optimice el codigo y me
sirva para aprender... bienvenida...



con base en los datos de tu consulta original:
- insertar las hojas a la derecha de "hoja1"
- pasar del libro base las columnas B,C,D,H y J (la constante de tipo
String para facilidad de modificaciones)
- filtrar columna D (antes la columna H de la hoja en el libro base) por
"Finalizado" y "En Prueba"
- filtrar columna C (antes la columna D) por la fecha del dia del
proceso

prueba con la siguiente propuesta de macro (no uso filtros avanzados
sino autofiltros)

nota: (creo que) te ahorrarias las 3 hojas de reportes ("Final_",
"Prueba_" y "Hoy_")
-> si dejas solamente la hoja "Info_" y utilizas los autofiltros
segun el concepto que necesites imprimir/reportar/... -?-

Private Const Base As String = "b1:d1,h1,j1"
Private Sub btnGernerarReporte_Click()
Application.ScreenUpdating = False
Dim Fecha As String, nCols As Byte, n As Byte, Hojas
Fecha = Format(Date, "ddmmyy")
nCols = Range(Base).Count
Hojas = Array("Hoy_", "Prueba_", "Final_", "Info_")
For n = LBound(Hojas) To UBound(Hojas)
With Worksheets.Add(After:=Worksheets("hoja1"))
.Name = Hojas(n) & Fecha: End With: Next
With Worksheets("Info_" & Fecha)
Workbooks.Open ThisWorkbook.Path & "\base.xls"
Range(Base).EntireColumn.Copy .Range("a1")
ActiveWorkbook.Close False
With .Range("a1").Offset(1, nCols).Resize(1, 1)
.Offset(-1) = "Dias a " & Fecha
.Formula = "=today()-c2": .NumberFormat = "0"
.AutoFill .Resize(Range("a65536").End(xlUp).Row - 1), xlFillDefault
With .Resize(Range("a65536").End(xlUp).Row - 1): .Value = .Value:
End With
End With
With .Range("a1")
.AutoFilter Field:=4, Criteria1:="Finalizado"
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("Final_" & Fecha).Range("a1"): .AutoFilter
.AutoFilter Field:=4, Criteria1:="En Prueba"
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("Prueba_" & Fecha).Range("a1"): .AutoFilter
.AutoFilter Field:=3, Criteria1:Íate(Date)
.CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _
Worksheets("Hoy_" & Fecha).Range("a1"): .AutoFilter
End With
End With
End Sub






Respuesta Responder a este mensaje
#7 Héctor Miguel
12/11/2007 - 01:09 | Informe spam
hola, Jorge !

... ahora me sale otro error: error definido por la aplicacion o el objeto
al depurar se presenta en:
.AutoFill .Resize(Range("a65536").End(xlUp).Row - 1), xlFillDefault



la linea que comentas viene "heredada" de la instruccion:
With .Range("a1").Offset(1, nCols).Resize(1, 1)

donde interviene por primera vez lo que se obtiene de la variable "nCols"
que es donde aparecio el primer error que comentaste (entonces)...

- que paso con el error anterior ?
lo corregiste/arreglaste/depuraste/... ?
como y/o a que se debia ???

(despues de haber probado la propuesta antes de mandarla al foro)...
- hay algo en mis "supuestos" que esta siendo diferente de la realidad ?
(y que/cual/donde/... ?)

- ya revisaste las referencias (solo por si las dudas) ?

necesitas comentar (de ser posible) detalles mas concisos ;)

saludos,
hector.
Respuesta Responder a este mensaje
#8 Héctor Miguel
12/11/2007 - 02:14 | Informe spam
hola (de nuevo), Jorge !

una posibilidad de error (posterior a lo de la variable "nCols")...
podria ser si no existen celdas que cumplan con el criterio para los filtros -?-

(por si puedes comentar la situacion en que se presenta el error "definido por la aplicacion o el objeto")

saludos,
hector.

__ las consultas anteriores __
... ahora me sale otro error: error definido por la aplicacion o el objeto
al depurar se presenta en:
.AutoFill .Resize(Range("a65536").End(xlUp).Row - 1), xlFillDefault



la linea que comentas viene "heredada" de la instruccion:
With .Range("a1").Offset(1, nCols).Resize(1, 1)

donde interviene por primera vez lo que se obtiene de la variable "nCols"
que es donde aparecio el primer error que comentaste (entonces)...

- que paso con el error anterior ?
lo corregiste/arreglaste/depuraste/... ?
como y/o a que se debia ???

(despues de haber probado la propuesta antes de mandarla al foro)...
- hay algo en mis "supuestos" que esta siendo diferente de la realidad ?
(y que/cual/donde/... ?)

- ya revisaste las referencias (solo por si las dudas) ?

necesitas comentar (de ser posible) detalles mas concisos ;)
Respuesta Responder a este mensaje
#9 JForero
28/11/2007 - 23:43 | Informe spam
Hola Hector...

estaba un poco desconectado debido a un viaje, pero ya estoy retomando mi
trabajo...

estuve iniciando todo nuevamente respecto a este caso y me sigue sacando el
error, en el análisis que hago, antes del error se me generan las 4 hojas de
cálculo

Info_Fecha
Finalizado_Fecha
Prueba_Fecha
y Hoy_Fecha

Según creo, del libro que estoy trayendo la información (base.xls), me debe
pegar lo seleccionado en Info_Fecha y de esta nueva hoja filtrar los datos,
a las otras tres hojas. puede ser que por alguna razón no hay nada pegado en
Info_Fecha y por lo tanto no puede hacer el filtro para las demás hojas???

como siempre mil gracias por tu valiosa ayuda

jorgef..

"Héctor Miguel" escribió en el mensaje
news:%
hola (de nuevo), Jorge !

una posibilidad de error (posterior a lo de la variable "nCols")...
podria ser si no existen celdas que cumplan con el criterio para los
filtros -?-

(por si puedes comentar la situacion en que se presenta el error "definido
por la aplicacion o el objeto")

saludos,
hector.

__ las consultas anteriores __
... ahora me sale otro error: error definido por la aplicacion o el
objeto
al depurar se presenta en:
.AutoFill .Resize(Range("a65536").End(xlUp).Row - 1), xlFillDefault



la linea que comentas viene "heredada" de la instruccion:
With .Range("a1").Offset(1, nCols).Resize(1, 1)

donde interviene por primera vez lo que se obtiene de la variable "nCols"
que es donde aparecio el primer error que comentaste (entonces)...

- que paso con el error anterior ?
lo corregiste/arreglaste/depuraste/... ?
como y/o a que se debia ???

(despues de haber probado la propuesta antes de mandarla al foro)...
- hay algo en mis "supuestos" que esta siendo diferente de la realidad ?
(y que/cual/donde/... ?)

- ya revisaste las referencias (solo por si las dudas) ?

necesitas comentar (de ser posible) detalles mas concisos ;)




Respuesta Responder a este mensaje
#10 Héctor Miguel
29/11/2007 - 02:13 | Informe spam
hola, Jorge !

estuve iniciando todo nuevamente respecto a este caso y me sigue sacando el error
en el analisis que hago, antes del error se me generan las 4 hojas de calculo
Info_Fecha
Finalizado_Fecha
Prueba_Fecha
y Hoy_Fecha
Según creo, del libro que estoy trayendo la informacion (base.xls), me debe pegar lo seleccionado en Info_Fecha
y de esta nueva hoja filtrar los datos, a las otras tres hojas.
puede ser que por alguna razon no hay nada pegado en Info_Fecha y por lo tanto no puede hacer el filtro para las demas hojas???



(creo que) "esta parte" te toca a ti el determinar en cuales circunstancias es cuando de presenta el error -?-
tal como te comentaba en el mensaje al que estas respondiendo (por si el tiempo de desconexion impidio que lo leyeras) :))
=>> una posibilidad de error (posterior a lo de la variable "nCols")...
podria ser si no existen celdas que cumplan con el criterio para los filtros -?-

(por si puedes comentar la situacion en que se presenta el error "definido por la aplicacion o el objeto")




=(aunque tampoco comentaste "como" resolviste el error anterior ni cual era su causa) -?-

si cualquier duda (o informacion adicional)... comentas?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida