parece q esto es dificil de hacer

01/09/2004 - 08:33 por lamarse | Informe spam
Hola de nuevo.

Tengo este ultimo problema y por lo que veo no tiene solución. Llevo
varios dias y ni la encuentro y nadie me sabe decir nada.
¿Me podriais confirmar que no se puede hacer?

Muchas gracias

Victor [VDP]

-
Tengo una nueva problemática, donde vuelvo a necesitar de vuestra
ayuda.

A ver,

HOJA1
Contiene 2 RANGE's y 1 CELDA (entre otras cosas, pero esto es lo que
me interesa)

RANGE ("J4:J33")
RANGE ("O4:O9")
CELDA ("F2") = Contiene una fecha variable.

HOJA2
Contiene 1 clase de RANGE que se repite x cada FECHA.

RANGE ("C2:C7") = Este correspondería a la primera fecha, o sea,
30-08-04
RANGE ("D2:D7") = 31-08-04
RANGE ("E2:E7") = 1-09-04
Y así hasta finalizar el mes….. léase..
RANGE ("AI2:AI7") = finalizar el mes, pero en viernes.

Repetimos, pero dicho de otra manera:

Lunes 30/08/04 = Columna C (este es el primer RANGE)
Martes 31/08/04 = Columna D (este es el 2º RANGE)
.
.
Viernes 3/09/04 = Columna G (este es el 5º RANGE)
Sábado y domingo… saltamos las columnas H e I (que quedan para otro
uso)
. [Los Sábado y los Domingos, SIEMPRE se saltan sus columnas (q quedan
para otro uso)]
Lunes 6/09/04 = Columna J (este es el 6º RANGE)
.
. [Esto continua hasta que llegamos a fin de mes, pero no lo cortamos
a mitad de semana, sino que lo alargamos hasta el primer viernes del
próximo mes… léase

Viernes 1/10/04 = Columna AI (este es el 25º RANGE, y ultimo de esta
SERIE)

Una vez llegado a este punto, la siguiente fecha será en la Columna C
de nuevo, léase

Lunes 3/10/04 = RANGE ("C12:C17")

Así quedan los meses ordenados por franjas de filas concretas y se ven
en toda la HOJA (sin tener que desplazarla, aunque esto es mas o
menos, claro).

NOTA: Si esto lo complica demasiado, podemos prescindir de poner cada
mes, uno debajo de otro, y lo podemos poner TODO en RANGE
("LETRA/s2:LETRA/s7"), sin tener que bajar a
RANGE("LETRA/s12:LETRA/s17") (al fin y al cabo es comodidad, no
necesidad)

-
LA PROBLEMÁTICA:

Cuando en la HOJA1 realizo una modificación dentro del RANGE
("J4:J33") [exactamente después de haber modificado cualquier de sus
celdas, ni cuando estoy dentro, ni antes de la modificación],
Necesito que se COPIE el contenido del RANGE ("O4:O9") en la HOJA2, en
aquel RANGE correspondiente en función de la fecha que haya en CELDA
("F2") (de la HOJA1, claro).
O sea, que si HOJA1;CELDA ("F2") = 06/09/04, el contenido de
HOJA1;RANGE ("O4:O9"), se copiará en HOJA2;RANGE ("J2:J7"). Y así se
copia en un lugar u otro en función de la fecha que indique F2.

-
Las fechas serán hasta 1 año (no más), aunque imagino que no tendré
muchos problemas para modificarlo si al final decido incluir mas
fechas, ¿no?


Ya que estoy, expongo una

2ª PROBLEMÁTICA:

Cuando cierro el XLS, quisiera que me realice un SAVE AS, pero que
este sea AUTOMATICO y TRANSPARENTE. El nombre del FILE.xls, quiero que
sea un dia mas.
Amplio:
Yo trabajo con el file 30-08-04.xls (que es lunes), y cuando lo
cierro, quiero que AUTOMATICAMENTE y de FORMA TRANSPARENTE (sin
preguntar, ni que se vea) me cree un SAVE AS del mismo pero con el
nombre 31-08-04.xls (que es un dia mas, y será el martes). Cuando
llego al viernes, léase, 03-09-04.xls, y lo cierro, quiero que me cree
un SAVE AS con nombre del lunes 06-09-04.xls (y no asi del sábado
04-09-04.xls). Y así siempre.

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
03/09/2004 - 04:23 | Informe spam
hola [de nuevo]., victor [VDP] !

... NO consigo que se inmute de ese error en el Kill copia. [...]





[solo por si las dudas]... una posible causa de error en la instruccion 'Kill':
si el archivo que se va a 'eliminar' [la copia 'del dia siguiente']... ->esta abierto en la sesion<-

¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#7 lamarse
04/09/2004 - 17:41 | Informe spam
Hola Hector.

A ver, he realizado esta prueba:

He creado desde mi Excel XP en ingles (y XP ENG tambien SP2) un file
XLS nuevo (con nombre 05-10-04.xls) y he copiado este codigo en
ThisWorkbook:


Public Copia As String
Private Sub Workbook_Open()
Dim Dia As Integer, Mes As Integer, Año As Integer, Actual As String
Dia = Left(Me.Name, 2): Mes = Mid(Me.Name, 4, 2): Año = 20 &
Mid(Me.Name, 7, 2)
Actual = LCase(Format(DateSerial(Año, Mes, Dia), "ddd"))
Select Case Actual
Case "vie", "fri": Dia = Dia + 3
Case "sáb", "sab", "sat": Dia = Dia + 2
Case Else: Dia = Dia + 1
End Select: Copia = Format(DateSerial(Año, Mes, Dia), "dd-mm-yy") &
".xls"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Respaldo As String: Respaldo = ThisWorkbook.Path & "\" & Copia
If Dir(Respaldo) <> "" Then Kill Respaldo
Me.SaveCopyAs Respaldo
End Sub


Guardo el tema en el xls, y de ahi cierro... y... lo mismo!!
Error en ' If Dir(Respaldo) <> "" Then Kill Respaldo' [Kill Respaldo,
concretamente. Me lo marca en amarillo].

Lo he probado asi para descartar que ningun otro código estubiera
intercediendo, y bueno, obtengo el mismo resultado. ¿Va unido el
código para copiar de LIBRO1 a LIBRO2 (o sea, la PROBLEMATICA1)? Yo
creo que no, pero es lo unico que se me ocurre (a mi) que pueda
faltar.
En fin, no funciona.

Más cosas.
Este es el Path donde esta el 05-10-04.xls

F:\WORK\TRABAJANDO CON EXCEL\NEW PROJECT

Pero... si esto tiene que ver, es malo! pues me gustaria que funcione
sea donde sea que este, es decir.. que lo SAVEAS en la misma carpeta
donde esta (indistintamente de su hubicacion).

Tambien lo he hecho con el 05-10-04.xls abierto él solito (sin ningun
otro XLS mas abierto al mismo tiempo).

Se me ocurre una idea.
Toma, aqui te paso el file para que tu mires.

http://forum.milusion.com/05-10-04.xls

Gracias

Victor [VDP]
Respuesta Responder a este mensaje
#8 Héctor Miguel
05/09/2004 - 04:50 | Informe spam
hola, victor [VDP] !

... creado ... un ... nuevo ... 05-10-04.xls y he copiado ... codigo en ThisWorkbook [...]
Guardo el tema en el xls, y de ahi cierro... y... lo mismo!!
Error en 'If Dir(Respaldo) <> "" Then Kill Respaldo'
[Kill Respaldo, concretamente. Me lo marca en amarillo] [...]



1° comentarte que he 'bajado' el archivo del sitio de descarga y... =>' NO problem ' !!
->funciona 'sin chistar'<- [y con cuantos archivos voy 'respaldando'] :-(
2° cuando el archivo lo creas 'en limpio' [desde cero]...
las variables que 'se llenan' en el evento '_open' del libro... ->NO se han 'inicializado'<-
[seguramente] 'es' la causa de que el metodo 'kill' -NO 'encuentre... lo que busca'<- :-(
[de hecho] es la unica forma en que he podido 'reproducir' el error...'meterme' con las variables ;)
3° si [al final de cuentas] necesitas hacer el 'respaldo' SOLO cuando salgas del libro... [te propogo...]
->mueve todo<- el codigo para que sea ejecutado [exclusivamente] en el evento '_beforeclose'
en el modulo de codigo del libro ==Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Dia As Integer, Mes As Integer, Año As Integer, Sig As Integer, _
Actual As String, Copia As String, Respaldo As String
Dia = Left(Me.Name, 2): Mes = Mid(Me.Name, 4, 2): Año = 20 & Mid(Me.Name, 7, 2)
Actual = LCase(Format(DateSerial(Año, Mes, Dia), "ddd"))
Select Case Actual
Case "vie", "fri": Sig = 3
Case "sáb", "sab", "sat": Sig = 2
Case Else: Sig = 1
End Select
Copia = Format(DateSerial(Año, Mes, Dia) + Sig, "dd-mm-yy") & ".xls"
Respaldo = ThisWorkbook.Path & "\" & Copia
If Dir(Respaldo) <> "" Then Kill Respaldo
Me.SaveCopyAs Respaldo
End Sub

¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#9 lamarse
05/09/2004 - 13:52 | Informe spam
Hector,
YA FUNCIONA! Que bien! Al fin.
Esta vez si que si! Ya crea el archivo XLS siguiente y además he
comprobado que tiene en cuenta el fin de semana y me lo salta!
Perfecto.
Muchas gracias.
Tambien lo he mezclado con el resto del código, y parece que todo
funciona perfectamente tambien!

Muchisimas gracias una vez más.

Victor [VDP]
Respuesta Responder a este mensaje
#10 Héctor Miguel
05/09/2004 - 19:40 | Informe spam
hola, victor [VDP] !

YA FUNCIONA! [...]



;) gracias por el 'feed-back' :))
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