UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

edogaru


Hola a todos
Gracias por sus aportes en el foro. Soy nuevo pero me gustaría saber si alguien me prodrá ayudar con la siguiente macro:

Sub Desfase()
'Aplica una formula de buscarv
Range("E5:E9,E15:E19,E25:E28,E35:E39,E45:E48,E55:E60,E65:E69,E75:E79,E87").Formula = _
"=VLOOKUP(RC[-3],'C:\Users\omurillo\Desktop\Ventas El Salvador\Ventas\ReportesVtas\VENTAS GV 2014\VENTA DEL DIA\MARZO\[01_03_14.xlsx]Reporte de Venta'!R5C2:R100C7,6,FALSE)"
End Sub

La situación es que el dato [01_03_14.xlsx] debo cambiarlo diariamente. Por ejemplo:
El siguiente día deberá ser [03_03_03.xlsx]
El siguiente día deberá ser [04_03_03.xlsx]
El siguiente día deberá ser [05_03_03.xlsx]
Etc.

¿Que código debería ocupar para automatizar esto?
Saludos.
Gracias

tyno


Hola edogaru, bien venido al foro.

Prueba el código de esta manera:

Sub Desfase()
On Error Resume Next
ceros = 2 - Len(Day(Date))
If Len(Day(Date)) < 2 Then
dia = WorksheetFunction.Rept("0", ceros) & Day(Date)
Else
dia = Day(Date)
End If
mes = Format(Month(Date), "mm")
año = Right(Year(Date), 2)
fecha = dia & "_" & mes & "_" & año

'Aplica una formula de buscarv
Range("E5:E9,E15:E19,E25:E28,E35:E39,E45:E48,E55:E60,E65:E69,E75:E79,E87").Formula = _
"=VLOOKUP(RC[-3],'C:\Users\omurillo\Desktop\Ventas El Salvador\Ventas\ReportesVtas\VENTAS GV 2014\VENTA DEL DIA\MARZO\[" & fecha & ".xlsx]Reporte de Venta'!R5C2:R100C7,6,FALSE)"
End Sub


Lo que hice fue crear esa variable fecha la cual toma la fecha actual con el formato 01_01_14 y la agregue a la ruta donde están tus archivos, entonces esto en teoría debería reconocer los archivos con fecha actual.
Saludos

edogaru


Gracias Tyno por responder
Fijate que en esa variante ocurren diferentes problemas:

1- Aparecen varias veces la venta de dialogo para buscar la ruta o ubicación del archivo. El cuadro sale una vez por cada celda.

2- No se acualiza con el archivo que se escoge sino que toma el archivo de la fecha más reciente, es decir, en ves de tomar la fecha anterior, toma la fecha de hoy.

Sin embargo, gracias porque sientas una base para resolver mi problema.

Gracias
Saludos

tyno


Con respecto a esto: 1- Aparecen varias veces la venta de dialogo para buscar la ruta o ubicación del archivo. El cuadro sale una vez por cada celda.
 No se de que se trata ya que no tengo idea de como esta todo dispuesto en tu archivo.

Con respecto a esto: 2- No se actualiza con el archivo que se escoge sino que toma el archivo de la fecha más reciente, es decir, en ves de tomar la fecha anterior, toma la fecha de hoy.
No entiendo bien, ¿la fecha en realidad tiene que ser del día anterior? Si es así, solo hay que restar -1 a la variable día: dia = WorksheetFunction.Rept("0", ceros) & Day(Date-1)

edogaru


En el caso del punto 1:
El archivo esta dispuesto de tal forma que copie de otro libro de excel el valor de la venta que no se logró el día anterior y se muestra como un valor acumulado para el día siguiente. Solo se toman en cuenta los días Lunes a sabado. La idea sería que en la ventana saliera 1 vez, luego de seleccionado el archivo se copie los rangos que se ecuentran en el libro, tal cual lo refleja la formula vlookup.

En el caso del punto 2:
Se toma encuenta los días de Lunes a Sabado, también probé esta opción que mencionas pero el resultado es ventanas emergentes y la fecha del día de hoy.

Sin embargo reconozco mi error al digitar mal la pregunta lo correcto sería

Sub Desfase()
'Aplica una formula de buscarv
Range("E5:E9,E15:E19,E25:E28,E35:E39,E45:E48,E55:E60,E65:E69,E75:E79,E87").Formula = _
"=VLOOKUP(RC[-3],'C:\Users\omurillo\Desktop\Ventas El Salvador\Ventas\ReportesVtas\VENTAS GV 2014\VENTA DEL DIA\MARZO\[01_03_14.xlsx]Reporte de Venta'!R5C2:R100C7,6,FALSE)"
End Sub

Esta formula lo que hace es que me da el dato de lo que no se vendió el día anterior y que esta pendiente para el siguiente día. Lo que hacía con anterioridad es que cambiaba el dato de las "xx" así [xx_03_14.xlsx] por el día que necesitaba ver lo no vendido.

La situación es que el dato [03_03_14.xlsx] debo cambiarlo diariamente. Por ejemplo:
El siguiente día deberá ser [04_03_14.xlsx] y me dara el dato no vendido el día 04/03/14
El siguiente día deberá ser [05_03_14.xlsx] y me dara el dato no vendido el día 05/03/14
El siguiente día deberá ser [06_03_14.xlsx] y me dara el dato no vendido el día 06/03/14
Etc.

¿Que código debería ocupar para automatizar esto? ¿No se si esta clara la pregunta?
Saludos.
Gracias

tyno


Hola Edugaru.
Te paso un archivo de ejemplo que contiene un  formulario en el cual vas a ingresar el día, mes, y año (por defecto el mes y año son actuales pero se pueden modificar).Luego de que ingreses la fecha (no es necesario agregar un 0 delante en caso de que el día o el mes sea inferior a 10) das al botón OK y esto te inserta las fórmulas en la Hoja con la fecha que corresponde al archivo que necesitas. Es decir, esto te hace mucho más fácil aplicar la fecha en las fórmulas. El formulario se ejecuta en cualquier Hoja de este archivo con la combinación de las teclas Ctrl + f.

Saludos
Archivos
ejemplo 1.xlsm
No tienes los permisos para descargar los archivos.
(21 KB)

edogaru


Wow! Tyno eres un Maestro, exactamente es lo que buscaba. Estaba revisando el código eres todo un artista en Macros. Muchisimas gracias.

Gracias!
Saludos

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.