Sei sulla pagina 1di 66

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.
2

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.

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

Figura 1.2T-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 DE 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 provisiona miento 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 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
6

cantidades de datos que se actualizan diariamente, llevar 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 las 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 Application (VBA): La gran ventaja que aportan las macros es que

estn desarrolladas bajo Excel, 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-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 Excel.

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 Excel.

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.
8

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 ofimticaMicrosoft 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. 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.

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 Server2007, un sistema de revisin en red de aplicaciones de Office,
tales como Excel o Word.
Aunque 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.

3.2 Microsoft Office Excel


Microsoft Excel 2007 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 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.
Actualmente, la mayora de empresas posee dentro de sus herramientas
bsicas alguna versin de Microsoft 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.

Figura 3.1Interfaz de usuario de 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 grafico 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.

3.4 Visual Basic for Applications


Una de las fortalezas de Excel ha sido siempre su lenguaje macro. Desde que 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 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,
13

consistiendo en la versin independiente de Visual Basic y siendo compartida por


todas las dems versiones de Microsoft Office. En la figura 3.1 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 Excel, por otra parte si se aprende a
escribir macros en Excel, se puede transferir el conocimiento a otros tipos de
programacin con Visual Basic.
Aun cuando Excel es la aplicacin servidora de VBA, este lenguaje no tiene
nada en especial que lo enganche a Excel, ya que la aplicacin se comunica a VBA

14

por medio de un set de comandos especiales conocidos como libreras de objetos, la


figura 3.2 presenta un esquema de la forma de comunicacin entre VBA y Excel.

Figura 3.3 Sistema de Comunicacin VBA-Excel.

3.5 Macros
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 comoponer el texto en
negrita,cursiva y justificado,personalizar estilos y formatos o, crear programas para la
resolucin de clculos complejos, 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


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.
ste 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.3 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 IFpermite evaluar una condicin en el programa y


llevar a cabo una serie de instrucciones, segn sea el resultado de dicha
17

condicin. Cuando slo se requiere de la ejecucin de acciones al cumplirse la


condicin especificada (alternativa simple).

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 agiles de desarrollo de software


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
18

muy cambiantes y cuando se exige reducir drsticamente los tiempos de desarrollo


pero manteniendo una alta 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)


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.

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 yson 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
historias de usuario 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 darle seguimiento a los requerimientos del cliente. En
2013 este reporte era recibido desde Eslovaquia y diariamente se actualizaba
en Mexico, donde enviado a Malasia. Actualmente solo es actualizado en
nuestro pas..En la tabla 4.1 se presenta la descripcin de los requerimientos
que debe contener la plantilla donde aparecer el correo 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. Asi 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 trbajo 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 reportara 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 wiw de la
tabla,

Criterios de
aceptacin

Cuando se oprima el botn Update

hacer

las

comparaciones

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, asi mismo engloba un
concentrado de los totales de todos los grupos internacionales de PPL.
Contiene vistas semanales, mensuales y anuales.El requerimiento semanal de
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 creara 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 X.P. 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.1Diseo 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.

28

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.
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 X.P 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.

29

4.4Pruebas
Uno de los pilares de la metodologa X.P 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
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 plantila de correo contiene el remitente y
destinatario a donde ser enviado el correo, asi como el cuerpo del correo
electrnico.

Figura 5.1 Envio 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.2Hoja 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.3Registro de niveles de trabajo por mes.

La macro creada en este mdulo es capaz de ejecutarse con un botn para


facilitar en empleo de 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.4Registro de niveles de trabajo por equipo.

Las figuras 5.5, 5.6 y 5.7 muestran las columnas que fueron generadaspor
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.

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

35

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

Figura 5.7 Generacion de columas Status y Mes en hoja Hard.

36

5.3 Task Easy Report


Dicho reporte fue creado con la finalidad de conocer si lastareas 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 a la usanza Alemana, es decir semanalamente. Las vistas mensuales y
diaras se pueden apreciar en las figuras 5.9 y 5.10.

Figura 5.8 Task Easy Report semanal.

37

Figura 5.9 Task Easy Report mensual

Figura 5.10 Task Easy Report diario.

38

5.4 Report Order Management


El Report Order Management contiene una hoja especialmente dedicada a la
concentracion 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.

Figura 5.11 Pimer concentrado de datos.

39

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.12Segundo concentrado de datos.

Una vez obtenidos estos datos finales, la macro se encargara 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 ultima tabla y el mes en que esta siendo generada.

40

Figura 5.13 Vista final del Report Order Management.

41

CONCLUSIONES Y RECOMENDACIONES
La realizacin de este proyecto de residencia logro cumplir todos y cada uno de los
requerimientos solicitados por los Team Leaders del area, ya que para ellos el ahorro
de tiempo en la generacin de sus reportes es una parte fundamental de su dia a dia,
los objetivos de aumento de eficiencia, creacin de aplicaciones a la medida y
ahorros de tiempo resultaron parte fundamental en el desarrollo de las aplicaciones.
Como trabajos a futuro estas aplicaiones podrn ser complementadas por
alguien mas, esto con el proposito de hacer los reportes aun mas eficientes, ya que
el area de PPL tiene una gran dependencia del apoyo de los residentes, quienes por
lo general siempre aportan alguna nueva funcionalidad a los reportes.
Finalmente se puede concluir que el trabajo de residencia es una parte
fundamental tanto para el residente como para la empresa, ya que se puede dar un
apoyo y al mismo tiempo obtener conocimientos de la vida laboral, los cuales son
fundamentales una vez que se concluye la etapa de residencia.

42

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.

Martin, R., & Newkirk, J. (2002). La programacion 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

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


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

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


detallada sobre cualquier tpico de MS Excel. Fecha de consulta 29 Enero de 2014.
http://office.microsoft.com/es/excel/HP052047113082.aspx?pid=CH062528393082

43

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

Codificacion 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

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

44

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: Produccion y Planeacion.

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

Task: Referente a una tarea o proceso.

45

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

46

ANEXOS
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

47

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")
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")

48

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")
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 la posibilidad de generar una columna en Excel que
basado en la semana de cada dato se obtuviera el mes en que se registran, y de
este modo poder generar la tabla dinmica por meses.

49

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
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"

50

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

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

51

shttask.Range("u" & i).Value = "FALSE"


End If
Next
End Sub

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

52

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
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

53

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
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

54

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
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

55

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


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

56

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
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

57

Cdigo para obtener si est en tiempo aun 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
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

58

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
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

59

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

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

60

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))
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

61

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
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 es capaz
de lograr el llenado de la tabla es el siguiente.
62

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

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

63

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


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

64

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
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

65

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
With Selection.Borders(xlInsideHorizontal).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0
.Weight = xlThin
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

66