Necesito ayuda en Excel por Favor

shecano1922

Bovino adolescente
#1
Hola amigos Bakunos, les vengo a solicitar ayuda a todos para que me ayuden a solucionar un problema que tengo, el problema es el Siguiente:

En una Hoja de Excel tengo una nómina de personal que manejo que son un poquito más de 500 personas, en la otra hoja tengo un cuadro numérico que me sirve para ver con exactitud cuántas personas hay trabajando en cierto lugar y cuantas están en otras situaciones, el cuadro se parece a esto.



El Resto del cuadro que sigue a la continuación del primer cuadro



Tomando en cuenta que en la Hoja nómina de personal de donde se desprende la hoja numérica se toma en cuenta las siguientes Columnas,
Rango,
Destino,
Sexo,
Situación Administrativa, “Activo” solo los activos se quedan en el primer cuadro y los de diferente situación al de Activo se quedan en el segundo cuadro.

El problema es que cada uno de las personas independientemente de su rango puede estar en los diferentes Destinos.

Intente a ser un programa en Visual Basic 6.0 pero el problema es que hay que hacer demasiadas consultas para hacer y llenar estos cuadros.

Les dejo un poco de código.
DECLARO
Dim Destino As String
Dim Rango As String
Dim no As String
Dim SITUACIONACTUAL As String

'COLUMNA DIRECTOR GENERAL
Destino = "SAN JUAN DE DIOS"
Rango = "GERENTE GENERAL"
SITUACIONACTUAL = "ACTIVO"
no = "1"

If .State = 1 Then .Close
.Open "SELECT Datos.RANGO, Datos.DESTINO, Datos.x From Datos WHERE (((Datos.RANGO)='" & RANGO & "') AND ((Datos.DESTINO)='" & Destino & "') AND ((Datos.SITUACIONACTUAL)='" & SITUACIONACTUAL & "') AND ((Datos.x)=" & 1 & "))", Base, adOpenStatic, adLockOptimistic
Dim T2 As Integer

For x = 0 To .RecordCount - 1
T2 = T2 + !x
Next
'LT2.Caption = T2
'===========================================================================
'COLUMNA GERENTE GENERAL
Destino = "SAN JUAN DE DIOS"
RANGO = "GERENTE GENERAL"
SITUACIONACTUAL = "ACTIVO"
no = "1"

If .State = 1 Then .Close
.Open "SELECT Datos.RANGO, Datos.DESTINO, Datos.x From Datos WHERE (((Datos.RANGO)='" & RANGO & "') AND ((Datos.DESTINO)='" & Destino & "') AND ((Datos.SITUACIONACTUAL)='" & SITUACIONACTUAL & "') AND ((Datos.x)=" & 1 & "))", Base, adOpenStatic, adLockOptimistic
Dim T3 As Integer

For x = 0 To .RecordCount - 1
T3 = T3 + !x
Next
'LT3.Caption = T3

Lo que hace es recorrer fila por fila y me escribe el resultado en un cuadro de texto, pero son demasiadas consultas.

Quisiera saber si hay alguna forma en Excel o en el editor de visual basic que trae Excel para hacer un poquito más fácil esto.

En Excel utilice esta fórmula =SI(Y('NOM. PERS.'!B2="Director General";'NOM. PERS.'!D2="M";'NOM. PERS.'!E2="San Juan de Dios";'NOM. PERS.'!H2="ACTIVO"= 1,””) para que funcionara y si funcionó pero tuve que utilizar varias hojas que ocultaba donde jalaba toda la información pero el problema que cuando quería guardar la información tardaba alrededor de 35 a 45 minutos o si no se colgaba Excel.

Desde ya muchas gracias a todos los bakunos que me pueden ayudar, Saludos.
 
#3
Mira tu problema es que no tienes bien organizado el formato. Según lo que entendi de lo que escribiste, quieres llevar el control de tus empleados y saber cuantas personas tienes por cada departamento.

No me cuadra bien la idea de lo que quieres hacer (por los formatos), tienes términos que no explicas y no te da una idea precisa. Te recomendaría que leyeras un poco de diseño de base de datos y con eso te facilitaría.

Yo tengo experiencia en macros en excel y diseño de base de datos.

Si puedes lograr manejar lo que quieres, pero tienes que dedicarle tiempo y paciencia o en su caso $$$$.
 

shecano1922

Bovino adolescente
#4
Bueno Bakunos lo que exactamente quiero es que al hacer un cambio en cualquier departamento de la Lista automaticamente se haga en el cuadro numérico y no lo tenga que hacer yo manualmente, es es el gran problema y como les dije la información del cuadro numerico se desprende de cuatro columnas de la Hoja Nomina de Personal.

Eso es todo y nuevamente muchas gracias.
 
Arriba