Sunteți pe pagina 1din 78

S.E.P.

D.G.E.S.T.

D.I.T.D.

INSTITUTO TECNOLGICO SUPERIOR DE LIBRES


Organismo Pblico Descentralizado del Gobierno del Estado de Puebla

INGENIERA EN SISTEMAS COMPUTACIONALES

AUTOMATIZACIN DE REPORTES DE INDICADORES CLAVE DE DESEMPEO


(KPIs) A TRAVS DE VBA-EXCEL 2007

OPCIN (X)
INFORME DE RESIDENCIA PROFESIONAL

QUE PARA OBTENER EL TITULO DE:


INGENIERO EN SISTEMAS COMPUTACIONALES

PRESENTA:

DANYA MARA JUSTO PATIO

LIBRES, PUEBLA, AGOSTO 2014

NDICE
Pgina
INTRODUCCIN.

vii

CAPTULO I. GENERALIDADES DE LA EMPRESA


1.1 Antecedentes histricos de la empresa.

1.2 Misin......

1.3 Visin...

1.4 Ubicacin....

1.5 Giro......

CAPTULO II. MARCO DE REFERENCIA


2.1 Caracterizacin del rea de desarrollo del proyecto.......

2.2 Planteamiento del problema....

2.3 Justificacin....

2.4 Objetivos.....

2.4.1 Objetivo general........

2.4.2 Objetivos especficos.....

2.5 Alcances.

2.6 Limitaciones..........

CAPTULO III. MARCO TERICO


3.1 Microsoft Office 2007.......

11

3.2 Microsoft Office Excel......

11

3.3 Visual Basic....

13

3.4 Visual Basic for Applications.......

13

3.4.1 Cmo se comunica VBA con Excel?.....

14

ii

3.5 Macros....

15

3.6 Programacin Estructurada.....

16

3.6.1 Estructuras secuenciales....

17

3.6.2 Estructuras selectivas.....

17

3.6.3 Estructuras repetitivas....

18

3.7 Metodologas giles de desarrollo de software.......

18

3.8 Metodologa Extreme Programming (XP).....

19

3.8.1 Objetivos de la metodologa XP...........

19

3.8.2 Qu propone XP?.....

20

CAPTULO IV. METODOLOGA


4.1 Planificacin.......

22

4.1.1 Historias de usuario...........

22

4.2 Diseo.....

28

4.2.1 Diseo de envo de correo electrnico dentro del Monitoring Log..........

28

4.2.2 Diseo de tabla dinmica para reporte de horas trabajadas....

28

4.2.3 Diseo de tabla de registros de equipo de PPL..

28

4.2.4 Diseo de tabla DOM KPI........................

28

4.2.5 Diseo de tabla Tasks por semana............

29

4.2.6 Diseo de tabla Tasks por mes....

29

4.2.7 Diseo de Report Order Management.....

29

4.3 Codificacin...........

29

4.4. Pruebas..

29

CAPTULO V. RESULTADOS
5.1 Inicio de correo electrnico..

32

5.2 Consolidated Planning Log..

32
iii

5.3 Task Easy Report.....

37

5.4 Report Order Management..

39

CONCLUSIONES Y/O RECOMENDACIONES................

42

FUENTES DE INFORMACIN.....

44

GLOSARIO.......

46

ACRNIMOS.......

47

ANEXOS...

49

iv

NDICE DE FIGURAS
Pgina
Figura 1.1 Mapa de localizacin de T-Systems S.A. de C.V....

Figura 1.2 T-Systems S.A de C.V.....

Figura 3.1 Interfaz de usuario de Excel 2007..

12

Figura 3.2 Entorno de Visual Basic for Applications......

14

Figura 3.3 Sistema de Comunicacin VBA-Excel...

15

Figura 3.4 Ejemplo de estructura secuencial...

17

Figura 3.5 Ciclo de vida en XP......

20

Figura 5.1 Envo de E-mail.....

32

Figura 5.2 Hoja TRS....

33

Figura 5.3 Registro de niveles de trabajo por mes.....

34

Figura 5.4 Registro de niveles de trabajo por equipo....

35

Figura 5.5 Generacin de columnas On Time y Mes en hoja DO-Export...

36

Figura 5.6 Generacin de columnas On Time y Mes en hoja Tasks-Export..

36

Figura 5.7 Generacin de columnas Status y Mes en hoja Hard.....

37

Figura 5.8 Task Easy Report semanal.....

38

Figura 5.9 Task Easy Report mensual.....

38

Figura 5.10 Task Easy Report diario....

39

Figura 5.11 Primer concentrado de datos....

40

Figura 5.12 Segundo concentrado de datos....

40

Figura 5.13 Vista final de Report Order Management...

41

NDICE DE TABLAS
Pgina
Tabla 4.1 Diseo de Monitoring Log....

23

Tabla 4.2 Diseo de Horas Trabajadas...

24

Tabla 4.3 Diseo de Tabla PPL....

24

Tabla 4.4 Diseo de tabla DOM KPI....

25

Tabla 4.5 Diseo de Tabla semanal....

26

Tabla 4.6 Diseo de Tabla mensual....

26

Tabla 4.7 Diseo de Reporte....

27

vi

INTRODUCCIN
Visual Basic para aplicaciones es una combinacin del entorno de programacin
integrado; denominado Editor de Visual Basic y del lenguaje de programacin Visual
Basic, permitiendo disear y desarrollar programas en Visual Basic con gran
facilidad. El trmino para aplicaciones hace referencia al hecho de que el lenguaje
de programacin y las herramientas de desarrollo estn integradas con las
aplicaciones de Microsoft Office (Excel 2007), de forma que se puedan desarrollar
nuevas funcionalidades y soluciones que conlleven a favorecer y dar resultados.
En el presente trabajo se describen los complementos que se integraron a los
reportes que son utilizados en el departamento de Production Planning de la
empresa T-Systems S.A. de C.V.
Con ello es posible pensar en la automatizacin de reportes de indicadores
clave de desempeo (KPIS) a travs de VBA-EXCEL 2007, que surgen de la
necesidad de minimizar los procesos de bsqueda y generacin de informes
elaborados por personal del rea, mismos que contribuyen a disminuir la prdida de
tiempo y sobre todo la confusin y errores que puedan existir al realizar los informes
de manera manual.
La ejecucin del proyecto est orientada a lograr un mejor rendimiento dentro del
rea Production Planning, el cual se refleja en dos puntos fundamentales:

Disminucin de tiempo y esfuerzo por parte de los empleados del rea.

Mejorar la presentacin y contenido de los datos en cada reporte, esto con el


objeto de que el personal que los solicite, pueda identificar la informacin
expuesta de forma clara y ordenada.

Este documento consta de cinco captulos:


En el primer captulo se dan a conocer datos importantes de la empresa, tales
como su fundacin, ubicacin e importancia en el pas.

vii

Enseguida se presenta el segundo captulo, donde se abordan los motivos por los
cuales se realiza la aplicacin, as como el rea donde se implantar.
En el tercer captulo se especifica el proceso requerido para la realizacin de la
aplicacin y las herramientas utilizadas para llevar a cabo su desarrollo.
Posteriormente en el cuarto captulo se explica de manera detallada la
metodologa que conduce a la elaboracin de cada uno los mdulos de la aplicacin.
Finalmente en el ltimo captulo se muestran los resultados obtenidos en la
generacin de los reportes del rea de Production Planning.

viii

CAPTULO I
GENERALIDADES DE LA EMPRESA

1.1 Antecedentes histricos de la empresa


La compaa inici operaciones como Gedas Mxico en abril de 1995 en la ciudad de
Puebla, Mxico. Actualmente, T-Systems Mxico cuenta con ms de 1,400
empleados altamente calificados y con oficinas en la ciudad de Mxico y Puebla.
En T-Systems, el aseguramiento del xito de sus clientes significa apoyar sus
procesos de cambio, creando un clima de servicio y concentrando sus esfuerzos en
proveer soluciones tecnolgicas para negocios de la ms alta calidad.
Desde hace ms de diez aos todas las oficinas en Mxico operan bajo la
norma internacional de calidad ISO 9001. La certificacin es otorgada para todos los
procesos relacionados a Soluciones ICT para Clientes Corporativos (Ventas,
Consultora, Administracin de Soluciones, Desarrollo, Provisin y Operacin, as
como Administracin de Servicios IT).
En Mxico, la compaa es dirigida por el Lic. Federico Casas Alatriste y a nivel
internacional por Reinhard Clemens.

1.2 Misin
Estamos moldeando el futuro de un mundo de negocios y una sociedad
conectados. Adems, estamos creando valor agregado a nuestros clientes,
empleados e inversionistas a travs de soluciones innovadoras de ICT

1.3 Visin
T-Systems Mxico ser reconocida como una de las top 3 empresas en servicios
de ICT en Mxico, posicionndose adems, como la empresa ms rentable del
Grupo.

Sus Centros de Produccin, reconocidos mundialmente por sus operaciones


Best in Class sern los No. 1 en la Regin Amricas y uno de los 3 principales en el
mundo T-Systems.
T-Systems Mxico contar con los mejores profesionales del grupo y la industria
al ser un excelente lugar para trabajar.
Somos el nico proveedor que garantiza a nuestros clientes un solo punto de
contacto, independientemente de si se requieren servicios de Tecnologas de la
Informacin (TI) o de las Telecomunicaciones (TC), para producir y desarrollar
nuevas soluciones.

1.4 Ubicacin
La ubicacin actual de la empresa T-Systems S.A. de C.V., es Cerrada Fresnos
Nave 1 A y B, Parque Industrial FINSA, Cuautlancingo, Puebla. Como se muestra en
la Figura 1.1 y 1.2.

Figura 1.1 Mapa de localizacin de T-Systems S.A. de C.V.

Figura 1.2 T-Systems S.A. de C.V.

1.5 Giro
Se dedica, entre otras actividades a desarrollar, operar, crear, comercializar y disear
cualquier tipo de soluciones en materia de tecnologas de la informacin as como el
procesamiento y administracin de los datos.

CAPTULO II
MARCO REFERENCIA

2.1 Caracterizacin del rea de desarrollo del proyecto


El rea de Production Planning es la encargada de coordinar las diferentes tareas
que involucran el provisionamiento de un servidor, desde la llegada de un
requerimiento hasta la liberacin del servicio, incluyendo la planeacin de la solicitud
as como tambin el seguimiento de su implementacin.
Responsabilidades Primarias:

Abrir y crear una Delivery Order dependiendo de las necesidades y


requerimientos del cliente.

Planear todas las Delivery Orders requeridas, incluyendo la parte comercial y


tcnica de la planeacin.

Coordinar y dar seguimiento a las DOs.

Disear, crear y liberar los Master Plan para todos los clientes.

Principales Metas:

Asegurar la calidad de las DO al momento de ser ordenadas.

Asegurar que todas las actividades necesarias estn al momento de


introducirlas en el sistema de forma correcta.

Optimizar los esfuerzos y la duracin al momento de liberarlas en el sistema.

2.2 Planteamiento del problema


En el rea de Production Planning (PPL) los empleados realizan sus actividades con
la herramienta Microsoft Office Excel 2007 (hojas de clculo), para generar y
presentar reportes de Key Performance Indicators (KPIs) los cuales miden el nivel
del desempeo de un proceso, centrndose en el "cmo" e indicando su rendimiento,
de forma que se pueda alcanzar el objetivo fijado. Mismos que despus son
utilizados, en su mayora, por el encargado o los clientes correspondientes. Los
reportes contienen grandes cantidades de datos que se actualizan diariamente, llevar
6

a cabo ste proceso de manera manual resulta tardado y laborioso, ya que la


informacin es copiada dato por dato, lo cual implica una prdida de tiempo.

2.3 Justificacin
Solucionar el problema citado trae consigo distintos beneficios para el rea de PPL,
entre los que destacan:

Reduccin de tiempo: Esto se lograr minimizando el trabajo que se realizara


en horas, mediante el empleo de macros.

Control de informacin: Lograr el control de la informacin dentro del rea


permitir conocer si algunas de las actividades llevadas a cabo ah, estn
siendo cumplidas dentro de los tiempos en que deben ser completadas, entre
ellas se conocer si el estatus de una Delivery Order est dentro o fuera de
tiempo.

Reduccin de errores: La informacin generada por las macros ser confiable


ya que evitar que los errores humanos, como el copiar y pegar informacin
manualmente o realizar las macros sin asegurar que los resultados son
exactos.

Eficiencia y eficacia del rea: Los reportes sern generados con el mnimo
esfuerzo, permitiendo a los empleados actualizarlos rpidamente con un solo
clic y llevar a cabo otras actividades que anteriormente se retrasaban por la
cantidad de trabajo.

Realizacin de programas a la medida: Mediante las macros en Excel cada


programa desarrollado se adapta fcilmente a cada tipo de reporte,
proporcionando una versatilidad y flexibilidad incomparable.

Rpido y fcil manejo de los programas desarrollados bajo entorno Visual


Basic for Applications (VBA): La gran ventaja que aportan las macros es que
estn desarrolladas bajo Microsoft Office Excel 2007, herramienta conocida
por un gran pblico y extendida en la mayora de las empresas.

2.4 Objetivos
2.4.1 Objetivo general
Desarrollar, implementar y complementar macros en el rea de Production Planning,
para facilitar las actividades de generacin y presentacin de reportes, mediante el
empleo de VBA-Microsoft Office Excel 2007.
2.4.2 Objetivos especficos

Complementar los mdulos de cdigo existente de acuerdo a la tarea que


deban realizar.

Desarrollar aplicaciones complejas como formularios.

Automatizar tareas repetitivas como actualizar con regularidad cifras de horas


de trabajo, trazar datos en un grfico o aplicar formatos especiales.

Desarrollar nuevas funciones o aplicaciones dentro de la propia Microsoft


Office Excel 2007.

Comunicar aplicaciones compatibles con VBA como Outlook y Adobe Reader.

Crear funciones personalizadas para la ejecucin de tareas que no son


posibles realizar con las funciones predeterminadas de Microsoft Office Excel
2007.

2.5 Alcances
Automatizacin de los reportes.
Ahorro de tiempos de registro.
Obtencin de estadsticas semanales, mensuales y anuales.
Mayor eficiciencia y eficacia en el desempeo de cada empleado.

2.6 Limitaciones

No puede ser utilizado por otra rea de la empresa.

Ser desarrollado para cubrir las necesidades especficas del rea.

Solo funcionar en sistema operativo Windows x86 y x64.

Contendr una interfaz predeterminada (Microsoft Office Excel 2007).

Falta de actualizaciones o incompatibilidades de sistema que impidan utilizar


algunas caractersticas de los reportes.

CAPTULO III
MARCO TERICO

10

3.1 Microsoft Office 2007


Microsoft Office 2007 es una versin de la suite ofimtica Microsoft Office de
Microsoft y sucesora de Microsoft Office 2003. Originalmente conocido como Office
12 durante su ciclo beta, fue lanzado el 30 de noviembre de 2006 al mercado
empresarial y el 30 de enero de 2007 al pblico en general, coincidiendo con el
lanzamiento oficial de Windows Vista. Microsoft Office 2007 incluye nuevas
caractersticas, la ms notable es la nueva interfaz grfica llamada Office Fluent,
tambin conocido como "interfaz de cinta" (en ingls ribbon), que reemplaza al men
y a la barra de herramientas que fueron caractersticas desde su inicio.

Microsoft Office 2007 incluye nuevas aplicaciones y herramientas del lado


servidor, de las cuales una sobresaliente es Groove, un sistema de colaboracin y
comunicacin para pequeas empresas que fue originalmente desarrollado por
Groove Networks, hasta que Microsoft lo compr en 2005. Tambin esta nueva
versin incluye Microsoft Office Server 2007, un sistema de revisin en red de
aplicaciones de Office, tales como Microsoft Office Excel o Microsoft Office Word.
Aunque Microsoft Office 2007 incluye nuevas aplicaciones, slo FrontPage fue
eliminada por completo ya que sus sucesores fueron lanzados como suites
independientes: SharePoint Designer y Expression Web. Microsoft Corporation
(2014).

3.2 Microsoft Office Excel


Microsoft Office Excel, es un software denominado de productividad desarrollado en
1984 por Bill Gates e introducido para las computadoras personales de Macintosh en
ese mismo ao. Microsoft Office Excel ha evolucionado hasta nuestros das, de tal
manera que hoy ofrece los siguientes beneficios:

Posee capacidad de edicin de la vista de los datos.

Utiliza hojas para divisin de datos tanto numricos como otros formatos.
11

Posee la capacidad de sintetizar la informacin (mediante operaciones tales


como suma, resta, divisin, promedio, uso de tablas dinmicas, etc.)

Permite programar una serie de instrucciones que ejecutan cambios en la


informacin (Microsoft Visual Basic).
Precisamente este ltimo tem posee un gran potencial para el uso de

informacin; sin embargo, la mayora de las personas y empresas lo operan de una


forma muy sencilla,utilizando solo opciones bsicas, controles de tablas, etc.
Codificacin de una macro (2003).
Actualmente, la mayora de empresas posee dentro de sus herramientas
bsicas alguna versin de Microsoft Office Excel y, segn Curtis (2002), en la
actualidad todas tienen en comn la necesidad de mantener registros precisos. As
se est hablando de una manufacturera, que brinda servicios o comercializadora de
algn bien, estas empresas necesitan sistemas generales y especficos. La interfaz
de Microsoft Office Excel 2007 se puede apreciar en la figura 3.1.

Figura 3.1 Interfaz de usuario de Microsoft Office Excel 2007.

12

3.3 Visual Basic


Visual Basic es un lenguaje de programacin desarrollado por Microsoft orientado a
eventos. Se trata de un lenguaje derivado de la programacin BASIC. Se desarrolla
bajo un entorno totalmente grfico lo que hace que su manejo sea ms amigable
para quien lo aprende. Es un buen lenguaje para iniciar en el mundo de la
programacin.

Lenguajes que derivan de Visual Basic


Visual Basic es muy utilizado en empresas para todo tipo de programas de gestin.
De este lenguaje derivan:

Visual Basic Script (VBScript): Lenguaje para Activate Server Pages (ASP).

Visual Basic para aplicaciones (VBA): Lenguaje que permite desarrollar


mdulos y macros, que dan posibilidad de incrementar la funcionalidad de
aplicaciones como Word, Excel y Access.

Visual Basic.NET (VB.NET): Aade la capacidad de la programacin orientada


a objetos que Visual Basic 6.0 no posea. Vocabulario, Glosario o Definiciones
y Ayuda VBA (2012).

3.4 Visual Basic for Applications


Una de las fortalezas de Microsoft Office Excel ha sido siempre su lenguaje macro.
Desde que Microsoft Office Excel apareci, siempre gozo de tener el lenguaje macro
ms extenso y flexible que cualquiera de las otras hojas de clculo.
VBA apareci por primera vez como una parte de Microsoft Office Excel en la
versin 5 ya que fue la primera aplicacin que incluyo esta novedosa arquitectura. Al
empezar con Excel 97, VBA se convirti totalmente en un ambiente para el desarrollo
de software, consistiendo en la versin independiente de Visual Basic y siendo

13

compartida por todas las dems versiones de Microsoft Office. En la figura 3.2 se
puede apreciar el entorno que presenta VBA al momento de ser utilizado.

Figura 3.2 Entorno Visual Basic for Applications

3.4.1 Cmo se comunica VBA con Excel?


Excel con VBA incorpora una poderosa manera de automatizar aplicaciones. En este
sistema, VBA acta como un lenguaje de propsito general que es independiente de
la aplicacin. De este modo, cualquiera que tenga conocimientos de programacin
en Visual Basic puede fcilmente automatizar Microsoft Office Excel 2007, por otra
parte si se aprende a escribir macros en Microsoft Office Excel 2007, se puede
transferir el conocimiento a otros tipos de programacin con Visual Basic.
Aun cuando Microsoft Office Excel 2007 es la aplicacin servidora de VBA, este
lenguaje no tiene nada en especial que lo enganche a Microsoft Office Excel 2007,
14

ya que la aplicacin se comunica a VBA por medio de un set de comandos


especiales conocidos como libreras de objetos, la figura 3.3 presenta un esquema
de la forma de comunicacin entre VBA y Microsoft Office Excel 2007. Enciclopedia
virtual (2014).

Figura 3.3 Sistema de Comunicacin VBA-Excel

3.5 Macros
Enciclopedia virtual (2014). Una macro es un conjunto de comandos que se
almacena en un lugar especial de Excel de manera que estn siempre disponibles
cuando sea necesario ejecutarlos.Constan de una serie de instrucciones escritas en
Visual Basic, lenguaje que Excel puede entender, mediante macros en VBA se
pueden crear nuevas funciones para las hojas de Excel, desde cosas simples, como
cambiar un texto a negrita, cursiva y justificado, personalizar estilos y formatos o
crear programas para la resolucin de clculos complejos y automatizar tareas.
Por ejemplo, si todas las maanas se crea un reporte de ventas donde siempre
se le da el mismo formato a los textos, se podra crear una macro para que lo haga
automticamente. Las macros son utilizadas principalmente para eliminar la
necesidad de repetir los pasos de aquellas tareas que se realizan una y otra vez.

15

En s, la tarea que puede realizar una macro se ve limitada principalmente por


la imaginacin y capacidad del programador de la misma.

3.6 Programacin estructurada


Cockbun, A., Williams, L. The Costs and Benefits of Pair Programming.(2000). La
programacin estructurada en sus inicios fue desarrollada por Edgar W. Dijkstra y se
basa en el teorema de la estructura desarrollado en 1966 por Bhm y Jacopini. Este
teorema establece que un programa propio puede ser escrito utilizando slo las
siguientes estructuras lgicas de control: Secuenciales, Selectivas y Repetitivas. Un
programa se define como propio cuando cumple con los siguientes requerimientos:

Tiene exactamente una entrada y una salida para control del programa.

Existen caminos a seguir desde la entrada hasta la salida que conducen por
cada parte del programa, es decir, no existen lazos infinitos ni instrucciones
que no se ejecutan.

La Programacin Estructurada permite codificar un programa en comn acuerdo


con las reglas siguientes:

El programa parte de un diseo modular.

Los mdulos son diseados de forma descendente.

Cada mdulo integra en su cdigo las tres estructuras de control bsicas.


Secuenciales, Selectivas y Repetitivas.

La ventaja de utilizar ste tipo de programacin radica en que las instrucciones son
fciles de leer, comprender y codificar permitiendo aprovechar al mximo los
recursos de la computadora.

16

3.6.1 Estructuras secuenciales


La estructura de control secuencial consta de entrada, acciones y salida, las cuales
se agrupan linealmente para su ejecucin. La figura 3.4 es un ejemplo de estructura
secuencial.

Figura 3.4 Ejemplo de estructura secuencial

3.6.2 Estructuras selectivas


En las estructuras selectivas las acciones se ejecutan dependiendo del resultado de
una condicin o expresin y tienen la caracterstica de contar con una o ms salidas.
La sentencia IF
Una de las herramientas ms tiles en el proceso de informacin es la expresin
condicional, que forma parte de una sentencia de programa, la sentencia IF que
realiza preguntas que requieren respuestas lgicas o booleanas (del tipo True o
False, Yes o No) sobre una propiedad o variable en el cdigo del programa.

IfThen: La sentencia IF permite evaluar una condicin en el programa y


llevar a cabo una serie de instrucciones, segn sea el resultado de dicha
condicin. Cuando slo se requiere de la ejecucin de acciones al cumplirse la
condicin especificada (alternativa simple).

17

IfThenElse: Cuando se espera que al no cumplirse la condicin, tenga


lugar una serie de instrucciones opuestas o diferentes a las que ocurriran en
caso de cumplirse sta (alternativa doble).

IfThenElseIf: En la consideracin anterior de la sentencia If o se cumple


una condicin y ejecuta determinadas instrucciones, o no se cumple y ejecuta
otras condiciones distintas. Puede ocurrir que en caso de ser necesario, se
aniden una o ms condiciones.

3.6.3 Estructuras repetitivas


En el procesamiento de informacin las estructuras repetitivas o bucles permiten
optimizar cdigo y agilizar los programas, ya que una o varias instrucciones pueden
repetirse un nmero determinado o indeterminado de veces.
Bucle: En programacin, un bucle o ciclo es un tipo de estructura de control que
permite repetir una o ms sentencias mltiples veces, lo que ahorra tiempo, deja el
cdigo ms claro y facilita su modificacin en el futuro.
Los bucles con Do se utilizan cuando no se conoce con exactitud el nmero de
ocasiones en las que se repetir el conjunto de instrucciones. El bucle Do While
(Hacer mientras) es una estructura de la mayora de los lenguajes de programacin
estructurados cuyo propsito es repetir un bloque de cdigo mientras una condicin
se mantenga verdadera.

3.7 Metodologas giles de desarrollo de software


Abrahamsson, P., Salo, O., Ronkainen, J., Warsta, J. (2002). La filosofa de las
metodologas giles, es dar mayor valor al individuo, a la colaboracin con el cliente
y al desarrollo incremental del software con iteraciones muy cortas. Este enfoque ha
mostrado su efectividad en proyectos con requisitos muy cambiantes y cuando se
exige reducir drsticamente los tiempos de desarrollo pero manteniendo una alta

18

calidad. Las metodologas giles estn revolucionando la manera de producir


software, y a la vez generando un amplio debate entre sus seguidores y quienes por
escepticismo o convencimiento no las ven como alternativa para las metodologas
tradicionales.

3.8 Metodologa Extreme Programming (XP)


Martin, R., & Newkirk, J. (2002). XP es una metodologa gil centrada en potenciar
las relaciones interpersonales como clave para el xito en desarrollo de software,
promoviendo el trabajo en equipo, preocupndose por el aprendizaje de los
desarrolladores, as como un buen clima de trabajo. XP se basa en realimentacin
continua entre el cliente y el equipo de desarrollo, comunicacin fluida entre todos los
participantes, simplicidad en las soluciones implementadas adems de coraje para
enfrentar los cambios.
XP se define como especialmente adecuada para proyectos con requisitos muy
cambiantes e imprecisos donde existe un alto riesgo tcnico. Los principios y
prcticas son de sentido comn pero llevadas al extremo, de ah proviene su nombre.
Kent Beck, el padre de esta metodologia, la describe sin cubrir los detalles tcnicos y
de implantacin de las prcticas. Posteriormente, otras publicaciones de experiencias
se han encargado de dicha tarea. En la figura 3.8 se muestra el ciclo de vida del
software en dicha metodologa.
3.8.1 Objetivos de la metodologa XP
Los objetivos de esta metodologa son muy simples: En primer lugar la satisfaccin
del cliente, lo cual se evalu a travs de encuestas. Esta metodologa trata de dar al
cliente el software que l necesita y cuando lo necesita. Por tanto, se respondi muy
rpido a las necesidades del cliente, incluso cuando los cambios fueran al final del
ciclo de la programacin.

19

El segundo objetivo es potenciar al mximo el trabajo en grupo. Tanto los jefes


de proyecto, los clientes y desarrolladores, son parte del equipo y estuvieron
involucrados en el desarrollo del software. La forma de trabajo dentro de la
metodologa XP se aprecia en la figura 3.5.

Figura 3.5 Ciclo de vida en XP

3.8.2 Qu propone XP?


Empieza en pequeo y aade funcionalidad con retroalimentacin continua.
El manejo del cambio se convierte en parte sustantiva del proceso.
El costo del cambio no depende de la fase o etapa.
No introduce funcionalidades antes de que sean necesarias.

20

CAPTULO IV
METODOLOGA

21

4.1 Planificacin

4.1.1 Historias de usuario


Las historias de usuario tienen la misma finalidad que los casos de uso y son la
tcnica utilizada en XP para especificar los requisitos del software. Se trata de
tarjetas de papel en las cuales el cliente describe brevemente las caractersticas que
el sistema debe poseer, sean requisitos funcionales o no funcionales. El tratamiento
de las historias de usuario es muy dinmico y flexible, en cualquier momento pueden
romperse, reemplazarse por otras ms especficas o generales, aadirse nuevas o
ser modificadas. Cada historia de usuario es lo suficientemente comprensible y
delimitada para que los programadores puedan implementarla rpidamente.

En el rea de PPL se desarrollar y se dar soporte a los procesos y


herramientas que son fundamentales dentro de la misma, algunas de ellas son:

Monitoring Log: Es un registro utilizado para controlar las DOs que se manejan
da a da, as como para dar seguimiento a los requerimientos del cliente. En
2013 este reporte era recibido desde Eslovaquia y diariamente se actualizaba
en Mexico, y a su vez enviado a Malasia. Actualmente solo es actualizado por
Mxico. En la tabla 4.1 se presenta la descripcin de los requerimientos que
debe contener la plantilla y especifica el correo al que ser enviado.

22

Historias de usuario
Cdigo

Nombre

Generacin automtica de correo electrnico.

Actor

Team Leader.
Como Team Leader quiero enviar un correo cuando lo elija, segn el

Descripcin

estado de la Delivery Order.

HU relacionadas

Ninguna.

Mdulo

Envo de correo.
Condicin

Criterios de
aceptacin

Resultado

Se debe poder generar un correo


Cuando una DO est siendo electrnico que contenga la direccin
planeada.

de envo, y el cuerpo del correo donde


se explica las condiciones de la DO.

Tabla 4.1 Diseo de Monitoring Log

Consolidated Quality Report: Es un reporte semanal creado en PPL que lleva el


control de las horas reportadas de cada empleado, una lista de las actividades
que debe realizar cada uno, as como los indicadores clave de desempeo
(KPIs) nacionales e internacionales que cada uno debe cumplir. En la tabla 4.2
se muestra el requerimiento que debe cumplir la tabla dinmica que funcionara
para registrar los totales de las horas laboradas por cada empleado. As mismo
este reporte es capaz de manejar los datos de trabajo de cada uno de los
empleado registrados en la tabla correspondiente a PPL, en la tabla 4.3 se
puede apreciar el requerimiento de elaboracin para esta tabla. Finalmente la
automatizacin de la tabla que engloba el trabajo del grupo PPL nacional e
internacional se explica en la tabla 4.4.

23

Historias de usuario
Cdigo

Nombre

Exportar los datos.

Actor

Team Leader.
Como Team Leader requiero poder importar los datos necesarios para el
llenado de la tabla dinmica que reportar las horas trabajadas de cada

Descripcin

empleado.

HU relacionadas

Ninguna.

Mdulo

Exportar informacin.
Condicin

Criterios de
aceptacin

Resultado
Se debe poder importar los datos

Cuando se requiera actualizar la necesarios


tabla de horas trabajadas

desde

un

archivo

de

extensin .xlsx, a travs de la macro


correspondiente.

Tabla 4.2 Diseo de Hoja de Horas Trabajadas

Historias de usuario
Cdigo

Nombre

Automatizacin de clculos.

Actor

Team Leader.

Descripcin

Como Team Leader quiero actualizar la tabla de PPL mediante un botn.

HU relacionadas

Ninguna.

Mdulo

Update Tabla.
Condicin

Resultado
Se debe poder obtener el Who Is Who
de la tabla, y hacer las comparaciones

Criterios de
aceptacin

Cuando se oprima el botn Update

correspondientes para lograr las sumas


mensuales y anuales de cada DO y Task
y saber si cada miembro del equipo tiene
su trabajo en tiempo.

Tabla 4.3 Diseo de Tabla PPL

24

Historias de usuario
Cdigo

Nombre

Automatizacin de clculos.

Actor

Team Leader.

Descripcin

Como Team Leader quiero actualizar la tabla de DOM mediante un botn.

HU relacionadas Ninguna.
Mdulo

Update Tabla 2.
Condicin

Resultado

Se debe poder comparar las fechas de


Criterios de
aceptacin

creacin y finalizacin de las DO's y


Cuando se oprima el botn Update Task's para lograr las sumas semanales
de cada DO y Task y saber si los KPI's
permitidos estn dentro de los limites.

Tabla 4.4 Diseo de Tabla DOM KPI

Task Easy Report: Reporte que lleva el conteo solo de las tareas y sus status,
es decir, con este reporte es posible conocer cuantas tareas estn en tiempo,
fuera de tiempo y sus porcentajes correspondientes, as mismo engloba un
concentrado de los totales de todos los grupos internacionales de PPL.
Contiene vistas semanales, mensuales y anuales. El requerimiento semanal se
documenta dentro de la tabla 4.5. En la tabla 4.6 se muestra el requerimiento
correspondiente a la tabla de conteo de tareas por mes en el Task Easy Report.

25

Historias de usuario
Cdigo

Nombre

Comparacin de grupos y sus tareas por semana.

Actor

Team Leader.

Descripcin

Como Team Leader quiero actualizar la tabla semanal mediante una macro.

HU relacionadas Ninguna.
Mdulo

Actualizacin de tabla semanal.


Condicin

Resultado
Se

poder

comparar

cada

grupo

registrado en la tabla con los datos del registro

Criterios de
aceptacin

debe

Cuando se ejecute la macro

correspondiente,

una

vez

comparado

se

proceder a comparar la semana en que fue


terminada la tarea para finalmente definir si
termino dentro del tiempo esperado.

Tabla 4.5 Diseo de Tabla semanal

Historias de usuario
Cdigo

Nombre

Comparacin de grupos y sus tareas por mes.

Actor

Team Leader.

Descripcin

Como Team Leader quiero actualizar la tabla mensual mediante una macro.

HU relacionadas

Ninguna.

Mdulo

Actualizacin de tabla mensual.


Condicin

Resultado
Se debe poder comparar cada grupo registrado
en

Criterios de
aceptacin

Cuando se ejecute la macro

la

tabla

con

correspondiente,

los

una

datos
vez

del

registro

comparado

se

proceder a comparar el mes en que fue


terminada la tarea para finalmente definir si
termino dentro del tiempo esperado.

Tabla 4.6 Diseo de Tabla mensual

26

Report Order Management: Utilizado para enviar un reporte mensual que


contiene solamente registros de fechas de creacin y termino de los
requerimientos de ciertos clientes nacionales como Grupo Modelo,

Vidriera

Monterry y Hospital ABC. La funcionalidad solicitada se documento en la tabla


4.7.

Historias de usuario
Cdigo

Nombre

Importacin de datos.

Actor

Team Leader.
Como Team Leader quiero actualizar los datos mensuales para obtener la

Descripcin

informacin correspondiente.

HU relacionadas

Ninguna.

Mdulo

Importar datos.
Condicin

Resultado
Se debe poder copiar los datos de los
exports en la hoja correspondiente, despus

Criterios de
aceptacin

Cuando se ejecute la macro

de haber sido copiados se crear la hoja


Internal View, donde se obtienen ms a
detalle los datos que se necesitaran para
llenar la tabla final.

Tabla 4.7 Diseo de Reporte

DO KPI Report Philips: Durante el ao 2013, este reporte era actualizado


semanalmente, incluye detalles semanales, mensuales y anuales de las DOs
creadas y cerradas en tiempo, cerradas fuera de tiempo, planeadas y los
porcentajes de KPIs requeridos.

Consolidated Planning Log: Bitcora para llevar el control y cobro de todas las
DOs creadas para TS-NA, MX, BAT, Juniper y Copart.

27

4.2 Diseo
La metodologa XP sugiere que es necesario conseguir diseos simples y sencillos.
Procurando que sea lo menos complicado posible, para conseguir un diseo
fcilmente entendible e implemntable que a la larga costar menos tiempo y
esfuerzo desarrollar.

4.2.1 Diseo de envo de correo electrnico dentro del Monitoring Log


Para este escenario solamente se utilizar la interfaz predeterminada que posee la
aplicacin de Outlook 2007, ya que el cdigo fuente vincula directamente a Excel
para crear un nuevo correo.
4.2.2 Diseo de tabla dinmica para reporte de horas trabajadas
Segn la semana y el mes correspondiente, dicha tabla aumentar su tamao cada
mes, ya que tambin ofrece una vista anual de las horas registradas.

4.2.3 Diseo de tabla de registros del equipo de PPL


En esta tabla se llevar el registro de las DOs y Tasks que se encuentran dentro del
tiempo normal de planeacin, as como de las que estn fuera de tiempo y el total de
las que han sido recibidas, todo esto de acuerdo al responsable de cada una de
ellas.

4.2.4 Diseo de tabla DOM KPI


Esta tabla ser capaz de llevar los registros de las DOs y Task en tiempo y fuera de
tiempo, tanto para los clientes nacionales como internacionales, sin importar quien es
el responsable de su planeacin.
4.2.5 Diseo de tabla de Tasks por semana
El Task Easy Report ser capaz de llevar el conteo de tareas generadas por semana
de cada grupo de trabajo internacional que pertenezca al rea de PPL y saber
cuntas estn dentro del tiempo esperado y sus porcentajes.
28

4.2.6 Diseo de tabla Tasks por mes


Al igual que la vista semanal, la vista mensual podr obtener las cifras de las tareas
de los grupos internacionales pertenecientes a PPL.

4.2.7 Diseo de Report Order Management


Este reporte concentra datos de los principales clientes nacionales del rea de PPL,
como Modelo, Vitro y Hospital ABC. Mensualmente se registran las fechas de inicio y
fin de cada DO, entre otros datos con los que despus se genera un concentrado
mensual.

4.3 Codificacin
El cliente es una parte ms del equipo de desarrollo, su presencia es indispensable
en las distintas fases de XP al momento de codificar una historia de usuario su
presencia es an ms necesaria ya que los clientes son los que crean las historias
de usuario y negocian los tiempos en los que sern implementadas. Antes del
desarrollo de cada historia de usuario el cliente debe especificar detalladamente lo
que sta har y tambin tendr que estar presente cuando se realicen los test que
verifiquen que la historia implementada cumple la funcionalidad especificada.

4.4 Pruebas
Uno de los pilares de la metodologa XP es el uso de test para comprobar el
funcionamiento de los cdigos que se vayan implementando.
Todas las aplicaciones fueron probadas en diferentes equipos de cmputo
obteniendo resultados positivos.
Cada vez que una versin de nuevo cdigo era liberada se tenan reuniones
con el Team Leader responsable, donde se comprobaba el funcionamiento que haba

29

sido requerido, algunas veces cuando era aprobado el cliente solicitaba aadir
alguna nueva funcionalidad.
Se realizaron pruebas de conteo llevando a cabo filtrado manual para
comprobar que el cdigo estaba llevando a cabo los conteos automticos de manera
correcta.
Cada aplicacin fue puesta en el disco duro compartido del rea, para asegurar
completa disponibilidad para los integrantes del equipo de trabajo.

30

CAPTULO V
RESULTADOS

31

5.1 Inicio de correo electrnico


En la figura 5.1 se muestra el correo que es generado automticamente cuando la
macro llamada send_mail es ejecutada, la plantilla de correo contiene el remitente y
destinatario a donde ser enviado el correo, as como el cuerpo del correo
electrnico.

Figura 5.1 Envo de E-mail

5.2 Consolidated Planning Log


Este reporte es uno de los ms importantes ya que contiene muchas tablas con los
registros que son ms usuales y necesarios en el rea, uno de los principales es la
hoja donde semanalmente se registran las horas trabajadas por cada integrante del
rea.

32

En la figura 5.2 se muestra la funcionalidad de dicha tabla donde el Team


Leader podr conocer si los empleados ya han reportado sus horas semanales
trabajadas.

Figura 5.2 Hoja TRS

La segunda hoja generada en este reporte es la que se encargara de registrar


los KPIs de cada uno de los WIW registrados en la tabla, dichos datos sern
obtenidos de otra hoja donde se concentra toda la informacin. Dicho registro se
puede apreciar en la figura 5.3.

33

Figura 5.3 Registro de niveles de trabajo por mes

La macro creada en este mdulo se ejecuta empleando como activador un


botn para facilitar el uso del reporte.
En la figura 5.4 se muestra la tabla requerida por el cliente para reportar los
KPIs sin hacer mencin del responsable de las DOs. Funciona de manera parecida
a la tabla de la figura anterior pero con la diferencia que esta tabla hace
comparaciones entre los grupos de trabajo nacionales y los internacionales.

34

Figura 5.4 Registro de niveles de trabajo por equipo

Las figuras 5.5, 5.6 y 5.7 muestran las columnas que fueron generadas por
cdigo en las hojas que contienen los registros, para facilitar los conteos de todas las
tablas, entre ellas se encuentran la columna On Time y Mes.

35

Figura 5.5 Generacin de columnas On Time y Mes en hoja DO-Export

Figura 5.6 Generacin de columnas On Time y Mes en hoja Tasks -Export

36

Figura 5.7 Generacin de columas Status y Mes en hoja Hard

5.3 Task Easy Report


Dicho reporte fue creado con la finalidad de conocer si las tareas creadas estn
siendo terminadas dentro de los tiempos en que fueron planeadas, esto se puede
registrar cada semana, un concentrado de cada mes y un registro de los das del
mes en que esta siendo actualizado, en la figura 5.8 se muestra la tabla creada para
la vista semanal la cual es muy importante ya que los KPIs en esta rea son
medidos segn la costumbre Alemana, es decir, semanalamente. Las vistas
mensuales y diarias se pueden apreciar en las figuras 5.9 y 5.10.

37

Figura 5.8 Task Easy Report semanal

Figura 5.9 Task Easy Report mensual

38

Figura 5.10 Task Easy Report diario

5.4 Report Order Management


El Report Order Management contiene una hoja especialmente dedicada a la
concentracin de los datos de todos los clientes, si hacer especial nfasis en los
grupos para los cuales fue creado este reporte. La figura 5.11 es un ejemplo de la
primer vista que se obtiene de los datos, antes de ser reclasificados como el Team
Leader lo necesita.

39

Figura 5.11 Primer concentrado de datos

La siguiente clasificacin de los datos se lleva a cabo en la hoja llamada


Internal view, la cual como su nombre lo indica es la vista interna de los clientes a los
cuales registraremos en la tabla final, dicha hoja se ve representada en la figura 5.12.

Figura 5.12 Segundo concentrado de datos

40

Figura 5.13 Vista final del Report Order Management

Una vez obtenidos estos datos finales, la macro se encargar de transportarlos


a la hoja final, la cual se aprecia en la figura 5.13, donde sern reacomodados de
acuerdo a la peticin del Team Leader, para finalmente generar un nuevo libro que
contiene solo esta ltima tabla y el mes en que esta siendo generada.

41

CONCLUSIONES Y/O RECOMENDACIONES


La realizacin de Automatizacin de Reportes de Indicadores Clave de Desempeo
(KPIs) a travs de VBA-EXCEL 2007 logro cumplir con todos y cada uno de los
requerimientos solicitados por los Team Leaders, ya que para el rea de Production
Planning, contribuye con la automatizacin y el ahorro de tiempo en la generacin de
sus reportes, actividad fundamental en el desarrollo de sus actividades diarias.
Del mismo modo y de manera significativa aumento la eficiencia, creacin y
generacin de los reportes solicitados por las distintas reas involucradas.
La creacin de macros ayud a la reduccin de tiempos de trabajo que
tardaban desde horas a tan solo segundos, lo anterior debido a que las macros
realizan los clculos que una persona hace manualmente en 2 o 3 horas a tan slo
10 o 15 segundos.
Las macros resultaron ser ms eficientes, debido a que los reportes generados
mostraron mrgenes de error mnimos al hacer los conteos solicitados, que anterior
mente se hacan a mano, lo que ayudo al rea a mantener un correcto manejo de los
KPIs.
Los reportes generados podrn ser utilizados siempre que sean necesarios
debido a que tienen la posibilidad de que sus datos sean actualizados segn la
poca del ao en que sean requeridos, es decir, el cdigo es totalmente acoplable a
la cantidad de datos que sean introducidos.
Una recomendacin que se propone, es mejorar los funcionamientos de los
mdulos creados a travs del incremento y la optimizacin del cdigo existente, con
esto ser posible la velocidad de las macros si en algn momento los reportes son
utilizados en alguna computadora que no cumpla con los requerimientos de hardware
suficientes.
Finalmente se puede concluir que el trabajo de residencia es de gran beneficio
para la empresa y el alumno, ya que se contribuyo a la solucin y mejoramiento de
42

aspectos que dificultaban las actividades de los colaboradores de una empresa y al


mismo tiempo obtener un mayor cmulo conocimientos para aplicar en la vida
laboral, los cuales son fundamentales una vez que se concluye la etapa de
residencia.

43

FUENTES DE INFORMACIN
Abrahamsson, P., Salo, O., Ronkainen, J., Warsta, J. (2002) Agile software
development methods Review and analysis. VTT Publications.
Beck, K.. Extreme Programming Explained. Embrace Change, (2004) Pearson
Education, 1999. Traducido al espaol como: Una explicacin de la programacin
extrema. Aceptar el cambio, Addison Wesley.
Cockbun, A., Williams, L. The Costs and Benefits of Pair Programming.(2000)
Humans and Technology Technical Report.

Codificacin de una macro (2003). Sitio que contiene informacin relacionada con las
Macros en Excel. Fecha de consulta 19 de Marzo de 2014.
http://ciberconta.unizar.es/leccion/cursointermedioexcel/01_macro/macro03.htm

Enciclopedia virtual (2014). Biblioteca virtual, finanzas e inversiones. Fecha de


consulta 15 de Enero de 2014.
http://www.eumed.net/libros-gratis/finanzas-e-inversiones.htm

Martin, R., & Newkirk, J. (2002). La programacin extrema en la practica. Pearson


Addison-Wesley.

Microsoft Corporation (2014). Crear o eliminar una macro. Fecha de consulta 15 de


Diciembre de 2013.
http://office.microsoft.com/es-es/excel-help/crear-o-eliminar-una-macroHP010014111.aspx

Microsoft Corporation (2014). Sitio en lnea para consulta de informacin ms


detallada sobre cualquier tpico de MS Excel. Fecha de consulta 29 de Enero de
2014.
44

http://office.microsoft.com/es/excel/HP052047113082.aspx?pid=CH062528393082

Microsoft Corporation (2014). Sitio que contiene informacin relacionada con las
Macros en Excel. Fecha de consulta 15 de Febrero de 2014.
http://support.microsoft.com/kb/213740/es

Vocabulario, Glosario o Definiciones y Ayuda VBA (2012) Sitio que contiene formulas
para programcion en macros. Fecha de consulta 19 de Marzo de 2014.
http://www.asesorias-macros-excel-vba.com/VBA.html

45

GLOSARIO
Aplicacin: Es un tipo de programa informtico diseado como herramienta para
permitir a un usuario realizar uno o diversos tipos de trabajos.

Dato: Unidad mnima de informacin, sin sentido en s misma, pero que adquiere
significado en conjuncin con otras precedentes de la aplicacin que las cre.

Delivery Order: Orden de entrega.

Historia de usuario: Es una representacin de un requisito de software escrito en


una o dos frases utilizando el lenguaje comn del usuario.

Visual basic: Versin de BASIC de Microsoft utilizado para desarrollar aplicaciones


de Windows.

Production Planning: Produccin y Planeacin.

Team Leader: Son los responsables de equipos de trabajo estables.

Task: Referente a una tarea o proceso.

46

ACRNIMOS
ASP: Active Server Pages.
DO: Delivery Order.
ICT: Information and Comunication Technologies.
KPI: Key Performance Indicator.
PPL: Production Planning.
VBA: Visual Basic for Applications.
WIW: Who is who.
XP: Extreme Programming.

47

ANEXOS

48

Cdigo para enviar mail


Dentro del Monitoring Log se complement la posibilidad de enviar correos
electrnicos a travs de Microsoft Outlook 2007.
For Each cell In Selection
row = cell.row
SON = TDetail.range(TSSSOC & row).value
Fila =ThisWorkbook.Sheets("DO Overview").Cells.Find(SON, , xlFormulas, xlWhole, xlByRows,
xlPrevious).row
task = TDetail.range(TSSTaskC & row).value
taskname = TDetail.range(TSSTaskNameC & row).value
assignedend = TDetail.range(TSSEndC & row).value
descripcion = ThisWorkbook.Sheets("DO Overview").Cells([fila], ["Q"])
cli = InStr(descripcion, " ")
If cli <> 0 Then
cl = Left(descripcion, cli)
End If
If InStr(descripcion, "Reference:") <> 0 Then
ID = Mid(descripcion, InStr(descripcion, "Reference:"))
ID = Mid(ID, 1, InStrRev(ID, Chr(34)))
End If
If ID <> 0 Then
ID = " /" & ID
End If
If SON = "" Then
Exit Sub
End If
If InStr(SON, "DO") > 0 Then
tool = "COSIMA"
Else
tool = "SOM@SAP"
End If
Dim IBA As String
If tool = "SOM@SAP" Then
IBA=Application.WorksheetFunction.IfError(Application.VLookup(SON*1,Workbooks(monitorlogname).
Names("RDO_over").RefersToRange, 17, False), "IBA Not Found")

49

Else
IBA=Application.WorksheetFunction.IfError(Application.VLookup(SON,Workbooks(monitorlogname).N
ames("RCDO_over").RefersToRange, 18, False), "IBA Not Found")
End If
Dim Brief As String
If tool = "SOM@SAP" Then
Brief=Application.WorksheetFunction.IfError(Application.VLookup(SON*1,Workbooks(monitorlogname)
.Names("RDO_over").RefersToRange, 16, False), "Brief Description Not Found")
Else
Brief=Application.WorksheetFunction.IfError(Application.VLookup(SON,Workbooks(monitorlogname).N
ames("RCDO_over").RefersToRange, 17, False), "Brief Description Not Found")
End If
mailtocc = ""
If (TDetail.range(TSSImplementorC & row).value = "") Then
Set lookuprngwiw = range("Contacts!a2:I2000")
Set lookuprngdl = range("ContactNew!A4:H117")
Set lookuprngDO = range("'DO Overview'!b10:k200")
mailto=Application.WorksheetFunction.IfError(Application.VLookup(TDetail.range(TSSImplementorC &
row).value, lookuprngwiw, 5, False), "Implementor Not Found")
mailtocc=Application.WorksheetFunction.IfError(Application.VLookup(TDetail.range(TSSAssignmentGr
oupC & row).value, lookuprngdl, 3, False), "DL Not Found")
If mailto = "Implementor Not Found" Then
mailto=Application.WorksheetFunction.IfError(Application.VLookup(TDetail.range(TSSAssignmentGrou
pC & row).value, lookuprngdl, 3, False), "DL Not Found")
mailtocc = ""
End If
Else
If tool = "COSIMA" Then
mailto=Application.WorksheetFunction.IfError(Application.VLookup(TDetail.range(TSSImplementorC &
row).value, lookuprngwiw, 5, False), "Implementor Not Found")
mailtocc=Application.WorksheetFunction.IfError(Application.VLookup(TDetail.range(TSSAssignmentGr
oupC & row).value, lookuprngdl, 2, False), "DL Not Found")
Else
Set lookuprngwiw = range("Contacts!a2:I2000") ' WiW contacts
Set lookuprngdl = range("ContactNew!A4:H117") ' WiW contacts
Set lookuprngDO = range("'DO Overview'!b10:k200") ' WiW contacts
mailto=Application.WorksheetFunction.IfError(Application.VLookup(TDetail.range(TSSImplementorC &
row).value, lookuprngwiw, 5, False), "Implementor Not Found")

50

mailtocc=Application.WorksheetFunction.IfError(Application.VLookup(TDetail.range(TSSAssignmentGr
oupC & row).value, lookuprngdl, 3, False), "DL Not Found")
End If
End If
If tool = "SOM@SAP" Then
customer=Application.WorksheetFunction.IfError(Application.VLookup(SON*1,Workbooks(monitorlogn
ame).Names("RDO_over").RefersToRange, 12, False), "Customer Not Found")
Else
customer=Application.WorksheetFunction.IfError(Application.VLookup(SON,Workbooks(monitorlogna
me).Names("RCDO_over").RefersToRange, 13, False), "Customer Not Found")
End If
DOID = DOID + SON + ", "
tname = tname + " " + " || " + " " + taskname
asig = asig + " " + "|| " + " " + assignedend
DI = DI + " " + "/ " + CStr(task)
a = a + vbCr + "<font face=Calibri size=3>" + "<li>" + " " + "<b>" + CStr(task) + ": " + taskname + "</b>"
+ " is ready to start and has a planned end on:" + " " + "<b>" + assignedend + "</b>" + " " + vbCr +
"</span>"
ta = ta + " " + CStr(task) + ":" + " " + taskname + ";"
cliente = cliente + " " + cl + ","
Next cell

Cdigo para obtener mes


Uno de los requerimientos era el de generar una columna en Microsoft Office Excel
2007, que tomando como base la semana de cada dato se obtuviera el mes en que
se registran, y de este modo poder generar la tabla dinmica por meses.

Sub MesTRS()
Dim sem As String
Dim l, fila As Integer
Sheets("DB 2014").Range("p" & 1) = "Mes"
fila = Sheets("DB 2014").Range("m5000").End(xlUp).Row
l=2
For l = 2 To fila

51

sem = Sheets("DB 2014").Range("m" & l).Value


If sem = "Week 1" Or sem = "Week 2" Or sem = "Week 3" Or sem = "Week 4" Or sem = "Week 5"
Then
Sheets("DB 2014").Range("p" & l) = "Enero"
ElseIf sem = "Week 6" Or sem = "Week 7" Or sem = "Week 8" Or sem = "Week 9" Then
Sheets("DB 2014").Range("p" & l) = "Febrero"
ElseIf sem = "Week 10" Or sem = "Week 11" Or sem = "Week 12" Or sem = "W eek 14" Or sem =
"Week 13" Then
Sheets("DB 2014").Range("p" & l) = "Marzo"
ElseIf sem = "Week 14" Or sem = "Week 15" Or sem = "Week 16" Or sem = "Week 17" Or sem =
"Week 18" Then
Sheets("DB 2014").Range("p" & l) = "Abril"
ElseIf sem = "Week 19" Or sem = "Week 20" Or sem = "Week 21" Or sem = "Week 22" Then
Sheets("DB 2014").Range("p" & l) = "Mayo"
ElseIf sem = "Week 23" Or sem = "Week 24" Or sem = "Week 25" Or sem = "Week 26" Or sem =
"Week 27" Then
Sheets("DB 2014").Range("p" & l) = "Junio"
ElseIf sem = "Week 28" Or sem = "Week 29" Or sem = "Week 30" Or sem = "Week 31" Then
Sheets("DB 2014").Range("p" & l) = "Julio"
ElseIf sem = "Week 32" Or sem = "Week 33" Or sem = "Week 34" Or sem = "Week 35" Then
Sheets("DB 2014").Range("p" & l) = "Agosto"
ElseIf sem = "Week 36" Or sem = "Week 37" Or sem = "Week 38" Or sem = "Week 39" Or sem =
"Week 40" Then
Sheets("DB 2014").Range("p" & l) = "Septiembre"
ElseIf sem = "Week 41" Or sem = "Week 42" Or sem = "Week 43" Or sem = "Week 44" Then
Sheets("DB 2014").Range("p" & l) = "Octubre"
ElseIf sem = "Week 45" Or sem = "Week 46" Or sem = "Week 47" Or sem = "Week 48" Then
Sheets("DB 2014").Range("p" & l) = "Noviembre"
ElseIf sem = "Week 49" Or sem = "Week 50" Or sem = "Week 51" Or sem = "Week 52" Or sem =
"Week 53" Then
Sheets("DB 2014").Range("p" & l) = "Diciembre"
End If
Next
End Sub

52

Cdigo On Time para DOs y Tasks


El siguiente cdigo define el estado de las DOs y Tasks, el cual puede ser en tiempo
o fuera de tiempo segn la fecha en que estaba planeado que se terminaran y la
fecha en que realmente se finalizaron, obteniendo de la comparacin true o false
segn sea el caso.
Public Sub comp()
Dim strt, ended, starttask, endtask, lastrow, ultrow As Integer
Dim shtdo, shttask As Excel.Worksheet
Set shtdo = Sheets("DO - Export")
Set shttask = Sheets("Tasks - Export")
lastrow = shtdo.Range("P1000").End(xlUp).Row
ultrow = shttask.Range("a99999").End(xlUp).Row
For i = 2 To lastrow
strt = shtdo.Range("p" & i).Value
ended = shtdo.Range("g" & i).Value
If strt >= ended Then
shtdo.Range("q" & i).Value = "TRUE"
Else
shtdo.Range("q" & i).Value = "FALSE"
End If
Next
For i = 2 To ultrow
starttask = shttask.Range("e" & i).Value
endtask = shttask.Range("j" & i).Value
If starttask >= endtask Then
shttask.Range("u" & i).Value = "TRUE"
Else
shttask.Range("u" & i).Value = "FALSE"
End If
Next
End Sub

53

Cdigo para llenar la tabla DOM KPI


Dentro del Consolidated Quality Report la tabla DOM KPI es la responsable de
indicar si las DOs, tanto nacionales como internacionales estn dentro de los lmites
permitidos de operacin, esta tabla obtiene los status de los registros, para obtener
los conteos necesarios, lo cual permite saber si PPL est trabajando dentro de
tiempo.
Public Sub DOM_KPI()
Application.ScreenUpdating = False
Dim locale, inte As Integer
Dim i, j, k, lastrow, lstrow As Integer
Dim shtdom, shtexp, shttask As Excel.Worksheet
Dim ontime As String
ontime = "Q"
Set shtdom = Sheets("DOM KPI")
Set shtexp = Sheets("DO - Export")
Set shttask = Sheets("Tasks - Export")
Call comp
lastrow = Sheets("DO - Export").Range("B20000").End(xlUp).Row
locale = 0
inte = 0
For i = 2 To lastrow
If Sheets("DO - Export").Cells(i, ["B"]) = "CS.DPS.MX.PPL.DEPL" And Sheets("DO - Export").Cells(i,
["h"]) = "accepted" Then
locale = locale + 1
End If
shtdom.Range("f7").Value = locale
Next
For i = 2 To lastrow
If Sheets("DO - Export").Cells(i, ["B"]) = "CSS.DPS.INT.DCO-PP.DEPL" And Sheets("DO Export").Cells(i, ["h"]) = "accepted" Then
inte = inte + 1
ElseIf Sheets("DO - Export").Cells(i, ["B"]) = "CSS.OSS.PHILIPS.PPL.INT.DEPL" And Sheets("DO Export").Cells(i, ["h"]) = "accepted" Then
inte = inte + 1
End If

54

Next
shtdom.Range("h7").Value = inte
clolocale = 0
cloint = 0
For i = 2 To lastrow
If Sheets("DO - Export").Cells(i, ["B"]) = "CS.DPS.MX.PPL.DEPL" And Sheets("DO - Export").Cells(i,
["h"]) = "accepted" And Sheets("DO - Export").Cells(i, ontime) = True Then
clolocale = clolocale + 1
End If
Next
shtdom.Range("f8").Value = clolocale
For i = 2 To lastrow
If Sheets("DO - Export").Cells(i, ["B"]) = "CSS.DPS.INT.DCO-PP.DEPL" And Sheets("DO Export").Cells(i, ["h"]) = "accepted" And Sheets("DO - Export").Cells(i, ["q"]) = True Then
clointe = clointe + 1
ElseIf Sheets("DO - Export").Cells(i, ["B"]) = "CSS.OSS.PHILIPS.PPL.INT.DEPL" And Sheets("DO Export").Cells(i, ["h"]) = "accepted" And Sheets("DO - Export").Cells(i, ["q"]) = True Then
clointe = clointe + 1
End If
Next
shtdom.Range("h8").Value = clointe
lstrow = Sheets("Tasks - Export").Range("T20000").End(xlUp).Row
For j = 2 To lstrow
If shttask.Cells(j, ["t"]) = "CS.DPS.MX.PPL.DEPL" And shttask.Cells(j, ["k"]) = "completed" And
shttask.Cells(j, ["u"]) = True Then
taskintimelocale = taskintimelocale + 1
End If
Next
shtdom.Range("f11").Value = taskintimelocale
For j = 2 To lstrow
If shttask.Cells(j, ["t"]) = "CSS.DPS.INT.DCO-PP.DEPL" And shttask.Cells(j, ["k"]) = "completed" Then
titinte = titinte + 1
ElseIf shttask.Cells(j, ["t"]) = "CSS.OSS.PHILIPS.PPL.INT.DEPL" And shttask.Cells(j, ["k"]) =
"completed" Then
titinte = titinte + 1
End If
Next
shtdom.Range("h10").Value = titinte

55

lstrow = Sheets("Tasks - Export").Range("T20000").End(xlUp).Row


For j = 2 To lstrow
If shttask.Cells(j, ["t"]) = "CS.DPS.MX.PPL.DEPL" And shttask.Cells(j, ["k"]) = "completed" Then
tasklocale = tasklocale + 1
End If
Next
shtdom.Range("f10").Value = tasklocale
For j = 2 To lstrow
If shttask.Cells(j, ["t"]) = "CSS.DPS.INT.DCO-PP.DEPL" And shttask.Cells(j, ["k"]) = "completed" And
shttask.Cells(j, ["u"]) = True Then
taskintimeinte = taskintimeinte + 1
ElseIf shttask.Cells(j, ["t"]) = "CSS.OSS.PHILIPS.PPL.INT.DEPL" And shttask.Cells(j, ["k"]) =
"completed" And shttask.Cells(j, ["u"]) = True Then
taskintimeinte = taskintimeinte + 1
End If
Next
shtdom.Range("h11").Value = taskintimeinte
For i = 2 To lastrow
If Sheets("DO - Export").Cells(i, ["B"]) = "CS.DPS.MX.PPL.DEPL" Then
reclocale = reclocale + 1
End If
shtdom.Range("f12").Value = reclocale
Next
For i = 2 To lastrow
If Sheets("DO - Export").Cells(i, ["B"]) = "CSS.DPS.INT.DCO-PP.DEPL" Then
recinte = recinte + 1
ElseIf Sheets("DO - Export").Cells(i, ["B"]) = "CSS.OSS.PHILIPS.PPL.INT.DEPL" Then
recinte = recinte + 1
End If
Next
shtdom.Range("h12").Value = recinte
deflocale = 0
definte = 0
For i = 2 To lastrow
If Sheets("DO - Export").Cells(i, ["B"]) = "CS.DPS.MX.PPL.DEPL" And Sheets("DO - Export").Cells(i,
["h"]) = "deferred" Then
deflocale = deflocale + 1
End If

56

shtdom.Range("f13").Value = deflocale
Next
For i = 2 To lastrow
If Sheets("DO - Export").Cells(i, ["B"]) = "CSS.DPS.INT.DCO-PP.DEPL" And Sheets("DO Export").Cells(i, ["h"]) = "deferred" Then
definte = definte + 1
ElseIf Sheets("DO - Export").Cells(i, ["B"]) = "CSS.OSS.PHILIPS.PPL.INT.DEPL" And Sheets("DO Export").Cells(i, ["h"]) = "deferred" Then
definte = definte + 1
End If
Next
shtdom.Range("h13").Value = definte
End Sub

Cdigo para llenar la tabla PPL


Esta tabla obtiene el WIW del responsable y registra si su trabajo est en tiempo y el
porcentaje fuera de tiempo, de modo anual y mensual.
Public Sub PPL_PR()
Application.ScreenUpdating = False
Call comp
Call dias
Dim dio, task As Integer
Dim i, j, k, lastrow, lstrow, ultrow As Integer
Dim shtdom, shtexp, shttask, shtppl As Excel.Worksheet
Dim ontime, wiw As String
Set shtppl = Sheets("PPL Performance Report")
Set shtexp = Sheets("DO - Export")
Set shttask = Sheets("Tasks - Export")
lastrow = Sheets("DO - Export").Range("I200000").End(xlUp).Row
lstrow = 10
ultrow = Sheets("Tasks - Export").Range("a999999").End(xlUp).Row
lastCol = shtppl.Range("zz4").End(xlToLeft).Column
For k = 12 To lastCol Step 10

''este for obtiene los meses''

mes = shtppl.Cells(4, k).Value

57

For i = 6 To lstrow
dioclose = 0
wiw = Sheets("PPL Performance Report").Cells(i, ["a"])
For j = 2 To lastrow
If shtexp.Cells(j, ["I"]) = wiw And shtexp.Cells(j, ["h"]) = "accepted" And shtexp.Cells(j, ["r"]) = mes Then
dioclose = dioclose + 1
End If
Next
shtppl.Cells(i, k).Value = dioclose
diocloseout = 0
For j = 2 To lastrow
If shtexp.Cells(j, ["I"]) = wiw And shtexp.Cells(j, ["h"]) = "accepted" And shtexp.Cells(j, ["q"]) = False
And shtexp.Cells(j, ["r"]) = mes Then
diocloseout = diocloseout + 1
End If
shtppl.Cells(i, k + 1).Value = diocloseout
Next
taskclose = 0
For j = 2 To ultrow
If shttask.Cells(j, ["n"]) = wiw And shttask.Cells(j, ["k"]) = "completed" And shttask.Cells(j, ["v"]) = mes
Then
taskclose = taskclose + 1
End If
shtppl.Cells(i, k + 3).Value = taskclose
Next
taskcloseout = 0
For j = 100 To ultrow
If shttask.Cells(j, ["n"]) = wiw And shttask.Cells(j, ["k"]) = "completed" And shttask.Cells(j, ["u"]) = False
And shttask.Cells(j, ["v"]) = mes Then
taskcloseout = taskcloseout + 1
End If
shtppl.Cells(i, k + 4).Value = taskcloseout
Next
dioopen = 0
Dim shthard As Worksheet
Set shthard = Sheets("Hard")
hrow = Sheets("Hard").Range("k99999").End(xlUp).Row
For j = 2 To hrow

58

If shthard.Cells(j, ["g"]) = wiw And shthard.Cells(j, ["m"]) = mes Then


dioopen = dioopen + 1
End If
shtppl.Cells(i, k + 6).Value = dioopen
Next
diodefer = 0
For j = 2 To ultrow
If shtexp.Cells(j, ["I"]) = wiw And shtexp.Cells(j, ["h"]) = "deferred" And shtexp.Cells(j, ["r"]) = mes Then
diodefer = diodefer + 1
End If
shtppl.Cells(i, k + 7).Value = diodefer
Next
diotime = 0
For j = 2 To hrow
If shthard.Cells(j, ["g"]) = wiw And shthard.Cells(j, ["l"]) = "On Time" And shthard.Cells(j, ["m"]) = mes
Then
diotime = diotime + 1
End If
shtppl.Cells(i, k + 8).Value = diotime
Next
Next
Next
End Sub

Cdigo para obtener si est en tiempo an si fue en viernes


Algunas de las peticiones de los clientes son hechas los das viernes, dentro de PPL
solo se trabaja de lunes a viernes, cada requerimiento dispone de 24 a 48 horas para
ser planeado y liberado, este cdigo permite saber si el requerimiento est dentro de
tiempo aun si la peticin llego en viernes.
Sub dias()
Dim dia_st_mx As String
Dim dia_end_mx As String
Dim lastrow As Integer
Dim hard As Excel.Worksheet

59

Dim i As Integer
Set hard = Sheets("Hard")
lastrow = hard.Range("k99999").End(xlUp).Row
For i = 100 To lastrow
st_mx = hard.Cells(i, "k").Value
end_mx = hard.Cells(i, "f").Value
resta = (end_mx - st_mx)
If resta = 0 Then
hard.Cells(i, "l") = "On Time"
ElseIf resta = 1 Then
hard.Cells(i, "l") = "On Time"
ElseIf resta < 1 Then
hard.Cells(i, "l") = "On Time"
ElseIf (resta > 1) Then
dia_st_mx = WeekdayName(Weekday(st_mx, 1)) 'Obtiene el dia de inicio
dia_end_mx = WeekdayName(Weekday(end_mx, 1)) ' Obtiene el dia Final
If dia_st_mx = "viernes" And dia_end_mx = "lunes" Then
hard.Cells(i, "l") = "On Time"
Else: hard.Cells(i, "l") = "Out of Time"
End If
End If
Next
End Sub

Cdigo para obtener el mes


Conocer el mes de trabajo de cada requerimiento es importante, por ello se cre una
columna que obtiene los meses de planeacin.

Sub meses()
Dim mes As String
Dim i As Integer
Dim j As Integer
Dim comp, fecha As String
Dim shtdo, shttask, shthard As Worksheet

60

Dim lastrow As Integer


Set shtdo = Sheets("DO - Export")
Set shttask = Sheets("Tasks - Export")
Set shthard = Sheets("Hard")
lastrow = shtdo.Range("a99999").End(xlUp).Row
lstrow = shttask.Range("a99999").End(xlUp).Row
ultrow = shthard.Range("a99999").End(xlUp).Row
For i = 2 To lastrow
fecha = shtdo.Cells(i, "g").Value
If fecha = "" Then
shtdo.Cells(i, "r") = "---"
Else
fecha = Format(fecha, "MMMM")
fecha = UCase(fecha)
shtdo.Cells(i, "r") = fecha
End If
Next
For i = 2 To lstrow
fecha = shttask.Cells(i, "j").Value
If fecha = "" Then
shttask.Cells(i, "v") = "---"
Else
fecha = Format(fecha, "MMMM")
fecha = UCase(fecha)
shttask.Cells(i, "v") = fecha
End If
Next
For i = 2 To ultrow
fecha = shthard.Cells(i, "f").Value
If fecha = "" Then
shthard.Cells(i, "m") = "---"
Else
fecha = Format(fecha, "MMMM")
fecha = UCase(fecha)
shthard.Cells(i, "m") = fecha
End If
Next
End Sub

61

Cdigo para llenado de tablas por semana


El Task Easy Report contiene tablas semanales y mensuales que registran solo las
tareas de cada Delivery Order. El siguiente cdigo es el encargado de llenar dicha
tabla semanalmente:
Public Sub llenaTCW2()
Dim i, j, k As Integer
Dim task, taskintime As Integer
Dim group As String
Dim week As String
Dim d As String
Dim car As String
Dim a As String
Dim b As Integer
Application.ScreenUpdating = False
For i = 9 To Sheets("(2) Task completed weekly").Range("B200").End(xlUp).Row
group = Sheets("(2) Task completed weekly").Cells(i, ["B"])
For j = 4 To 20 Step 4
week = Sheets("(2) Task completed weekly").Cells(7, j).Value
For k = 2 To Sheets("Export Sap").Range("D100000").End(xlUp).Row
If Not IsEmpty(Sheets("Export Sap").Range("C" & k).Value) Then
If (group = CStr(Sheets("Export Sap").Cells(k, ["D"])) And week = CStr(Sheets("Export Sap").Cells(k,
["T"])) And CStr(Sheets("Export Sap").Cells(k, ["Q"])) = "COMP" And Not CStr(Sheets("Export
Sap").Cells(k, ["C"])) = "End***" And Not CStr(Sheets("Export Sap").Cells(k, ["C"])) = "***End***" And
Not CStr(Sheets("Export Sap").Cells(k, ["C"])) = "***Start***") Then
task = task + 1
If Sheets("Export Sap").Cells(k, ["U"]) = "No" Then
taskintime = taskintime + 1
End If
End If
End If
Next
Sheets("(2) Task completed weekly").Cells(i, j) = task
Sheets("(2) Task completed weekly").Cells(i, j + 1) = taskintime
Dim dato1 As Double
Dim dato2 As Double
dato2 = ((task - taskintime))

62

Sheets("(2) Task completed weekly").Cells(i, j + 3) = CInt(dato2)


task = 0
taskintime = 0
Next
Next
Application.Calculation = xlCalculationAutomatic
End Sub

Cdigo para llenado de tablas por mes


As mismo el Task Easy Report contiene una tabla mensual para llevar a cabo la
suma de las tareas semanales.
Public Sub llenaTCM3()
Dim i, j, k As Integer
Dim task, taskintime As Integer
Dim group As String
Dim monthd As String
Dim d As String
Dim car As String
Dim a As String
Dim b As Integer
task = 0
tasintime = 0
Application.ScreenUpdating = False
For i = 10 To Sheets("(3) Task completed monthly").Range("B200").End(xlUp).Row
group = Sheets("(3) Task completed monthly").Cells(i, ["B"])
For j = 4 To 48 Step 4
monthd = Sheets("(3) Task completed monthly").Cells(8, j).Value
For k = 2 To Sheets("Export Sap").Range("D100000").End(xlUp).Row
If Not IsEmpty(Sheets("Export Sap").Range("C" & k).Value) Then
If (group = CStr(Sheets("Export Sap").Cells(k, ["D"])) And monthd = CStr(Sheets("Export Sap").Cells(k,
["V"])) And CStr(Sheets("Export Sap").Cells(k, ["Q"])) = "COMP" And Not CStr(Sheets("Export
Sap").Cells(k, ["C"])) = "End***" And Not CStr(Sheets("Export Sap").Cells(k, ["C"])) = "***End***" And
Not CStr(Sheets("Export Sap").Cells(k, ["C"])) = "***Start***") Then
task = task + 1
If Sheets("Export Sap").Cells(k, ["U"]) = "No" Then

63

taskintime = taskintime + 1
End If
End If
End If
Next
Sheets("(3) Task completed monthly").Cells(i, j) = task
Sheets("(3) Task completed monthly").Cells(i, j + 1) = taskintime
Dim dato1 As Double
Dim dato2 As Double
dato2 = ((task - taskintime))
Sheets("(3) Task completed monthly").Cells(i, j + 3) = CInt(dato2)
task = 0
taskintime = 0
Next
Next
Application.Calculation = xlCalculationAutomatic
End Sub

Cdigo para importar datos


Para lograr el concentrado de la tabla final dentro del Report Order Management, una
vez importados los datos necesarios a una hoja determinada, el cdigo que permite
lograr el llenado de la tabla es el siguiente:
Private Sub llenaTabelle1()
Dim i As Integer
Dim j As Integer
Dim m As Integer
Dim lastrow, ultrow, ultfila As Integer
Dim sht1 As Worksheet
Dim shtint As Worksheet
Dim shtdo As Worksheet
Dim dio, cust, fullname, cust2 As String
Dim st_mx, mes, ddate As String

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

64

Set sht1 = Sheets("Tabelle1")


Set shtint = Sheets("Internal view")
Set shtdo = Sheets("DO - Detailed view")

lastmes = Sheets("Tabelle1").Range("f3")
shtint.Select
shtint.Range("$A$1:$BC$9999").AutoFilter field:=3, Criteria1:=Array( _"Grupo Modelo", "HABC",
"Vidriera Monterrey S.A. de C.V.", "Vitro"), Operator:= xlFilterValues
shtint.Range("$A$1:$BC$9999").AutoFilter field:=22, Operator:= _xlFilterValues, Criteria2:=Array(0,
"2/28/2014")

''copia las DO's


shtint.Select
shtint.Range("B2:B9999").Select
Selection.Copy
sht1.Select
Range("I7").Select
sht1.Paste

''Copia los customer


shtint.Select
shtint.Range("c2:c9999").Select
Selection.Copy
sht1.Select
Range("c7").Select
sht1.Paste

''copia los request


shtint.Select
shtint.Range("d2:d9999").Select
Selection.Copy
sht1.Select
Range("j7").Select
sht1.Paste

''copia la delivery date

65

shtint.Select
shtint.Range("v2:v9999").Select
Selection.Copy
sht1.Select
Range("t7").Select
sht1.Paste

'' copia la description


shtint.Select
shtint.Range("w2:w9999").Select
Selection.Copy
sht1.Select
Range("k7").Select
sht1.Paste

''copia la IBA
shtint.Select
shtint.Range("Bb2:Bb9999").Select
Selection.Copy
sht1.Select
Range("H7").Select
sht1.Paste

lastrow = sht1.Range("i9999").End(xlUp).Row
For i = 7 To lastrow
fullname = sht1.Cells(i, "c")
If fullname = "HABC" Then
sht1.Cells(i, "c") = "Clinica Mdica ABC"
ElseIf fullname = "Vitro" Then
sht1.Cells(i, "c") = "Vidriera Monterrey S.A. de C.V."
End If
Next
For i = 7 To lastrow
larow = Sheets("Data Customers").Range("b30").End(xlUp).Row
cust = sht1.Cells(i, "c").Value
For k = 2 To larow
cust2 = Sheets("Data Customers").Cells(k, "b")
If cust = cust2 Then

66

sht1.Cells(i, "d").Value = Sheets("Data Customers").Cells(k, "c").Value


sht1.Cells(i, "b").Value = Sheets("Data Customers").Cells(k, "a").Value
sht1.Cells(i, "e").Value = Sheets("Data Customers").Cells(k, "d").Value
sht1.Cells(i, "f").Value = Sheets("Data Customers").Cells(k, "e").Value
sht1.Cells(i, "g").Value = Sheets("Data Customers").Cells(k, "f").Value
End If
Next
Next
ultrow = shtdo.Range("a99999").End(xlUp).Row
For j = 2 To ultrow
dio = shtdo.Cells(j, 1).Value
For l = 7 To sht1.Range("i9999").End(xlUp).Row
dio2 = sht1.Cells(l, ["I"])
If dio = dio2 Then
sht1.Cells(l, ["l"]).Value = shtdo.Cells(j, ["h"]).Value
sht1.Cells(l, ["s"]).Value = shtdo.Cells(j, ["h"]).Value
End If
Next
Next

Range("B7:U" & lastrow).Select


Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0.Weight
= xlThin
End With
With Selection.Borders(xlEdgeTop).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0.Weight
= xlThin
End With
With Selection.Borders(xlEdgeBottom).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0
.Weight = xlThin
End With

67

With Selection.Borders(xlInsideHorizontal).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0


.Weight = xlThin
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

68

S-ar putea să vă placă și