contar dias de vacaciones seguidos

26/10/2008 - 21:37 por toribias | Informe spam
Tengo una macro que me cuenta los días de vacaciones de un empleado al
año en un calendario de este tipo. En las columnas tengo los turnos
del A hasta el E y en las filas tengo los días del calendario. La
macro dependiendo del turno al que pertenezca el empleado me cuenta la
letra V de la columna correspondiente. Las V son las vacaciones del
empleado. La cuestión es cómo puedo contar las V (días de vaciones)
seguidos en la columna

A B C D E
1 F F F F F
2 N D M D T
3 N D M D T
4 N D M D T
5 N T D M D
6 N T D M D
7 N D T M D
8 N D T M D

Preguntas similare

Leer las respuestas

#1 julian-vlc-sp
26/10/2008 - 21:55 | Informe spam
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias.

No estoy seguro de haberte entendido, pero

... prueba con:

=Contar.si()


SALUDOS.
Julián-Valencia-España
http://www.tinyurl.com/julianvalencia


escribió en el mensaje
news:
Tengo una macro que me cuenta los días de vacaciones de un empleado al
año en un calendario de este tipo. En las columnas tengo los turnos
del A hasta el E y en las filas tengo los días del calendario. La
macro dependiendo del turno al que pertenezca el empleado me cuenta la
letra V de la columna correspondiente. Las V son las vacaciones del
empleado. La cuestión es cómo puedo contar las V (días de vaciones)
seguidos en la columna

A B C D E
1 F F F F F
2 N D M D T
3 N D M D T
4 N D M D T
5 N T D M D
6 N T D M D
7 N D T M D
8 N D T M D
Respuesta Responder a este mensaje
#2 Héctor Miguel
26/10/2008 - 22:38 | Informe spam
hola, !

en tanto no expongas "la macro"... (yo ?) no "veo" por donde pueda ser considerada cualquier "V" -???-
y si ("de pasadita") puedes comentar nombres de hojas, rangos, titulos, tipo de datos, formulas, etc. (seria mejor)

saludos,
hector.

__ OP __
Tengo una macro que me cuenta los días de vacaciones de un empleado al año en un calendario de este tipo.
En las columnas tengo los turnos del A hasta el E y en las filas tengo los días del calendario.
La macro dependiendo del turno al que pertenezca el empleado me cuenta la letra V de la columna correspondiente.
Las V son las vacaciones del empleado. La cuestión es cómo puedo contar las V (días de vaciones) seguidos en la columna

A B C D E
1 F F F F F
2 N D M D T
3 N D M D T
4 N D M D T
5 N T D M D
6 N T D M D
7 N D T M D
8 N D T M D
Respuesta Responder a este mensaje
#3 toribias
28/10/2008 - 17:12 | Informe spam
On 26 oct, 22:38, "Héctor Miguel"
wrote:
hola, !

en tanto no expongas "la macro"... (yo ?) no "veo" por donde pueda ser considerada cualquier "V"    -???-
y si ("de pasadita") puedes comentar nombres de hojas, rangos, titulos, tipo de datos, formulas, etc. (seria mejor)

saludos,
hector.

__ OP __



> Tengo una macro que me cuenta los días devacacionesde un empleado al año en un calendario de este tipo.
> En las columnas tengo los turnos del A hasta el E y en las filas tengo los días del calendario.
> La macro dependiendo del turno al que pertenezca el empleado me cuenta la letra V de la columna correspondiente.
> Las V son lasvacacionesdel empleado. La cuestión es cómo puedocontarlas V (días de vaciones)seguidosen la columna

> A B C D E
> 1 F F F F F
> 2 N D M D T
> 3 N D M D T
> 4 N D M D T
> 5 N T D M D
> 6 N T D M D
> 7 N D T M D
> 8 N D T M D- Ocultar texto de la cita -

- Mostrar texto de la cita -



Pido disculpas por la tardanza en la respuesta. Soy nuevo en el foro y
llegué a el por casualidad. Pensé que las respuestas llegarían por
correo y al no verlas en el correo pensaba que no las habría y esto
unido a que me ha costado un poco volver a encontrar el foro y el post
ya que no tuve la prudencia de agregarlo a favoritos.

La macro completa es esta:

Private Sub btnaceptar_Click()
Dim turno$
Dim fila As Long
Dim encontrada$
Dim operario As String

Worksheets("DATOS").Activate

encontrada = "no encontrada"
fila = 6
turno = Cells(fila, 2)
operario = Cells(fila, 1)

Do While Cells(fila, 1) <> Empty

If UCase(ActiveSheet.Cells(fila, 1)) = UCase(cmboperario) Then

turno = Cells(fila, 2)
operario = Cells(fila, 1)
encontrada = "encontrada"

End If

fila = fila + 1
Loop
If encontrada = "no encontrada" Then
MsgBox "Operario no encontrado", vbInformation + vbOKOnly, "buscar"
Worksheets("CALENDARIO").Activate
Worksheets("CALENDARIO").Range("W1").ClearContents

Exit Sub
End If
'-
Worksheets("CALENDARIO").Activate

If turno = "A" Then
Range("C2").Select
End If

If turno = "B" Then
Range("D2").Select
End If

If turno = "C" Then
Range("E2").Select
End If

If turno = "D" Then
Range("F2").Select
End If

If turno = "E" Then
Range("G2").Select
End If
'--
Application.ScreenUpdating = False

celda = ActiveCell.Address


For i = 1 To 4999

If InStr(UCase(ActiveCell), "D") <> 0 Then contador = contador + 1
If InStr(UCase(ActiveCell), "V") <> 0 Then contador contador + 1
If InStr(UCase(ActiveCell), "F") <> 0 Then contador contador + 1

ActiveCell.Offset(1, 0).Select

If contador = "" Then contador = 0

Range("W1") = "El operario " & operario & " tiene " & contador &
" dias de vacaciones "
Next

Range(celda).Select

Application.ScreenUpdating = True

End Sub

Cuenta los días de vacaciones que tiene un empleado en un año
dependiendo el turno. Se ejecuta desde un botón en un formulario. La
cuestión es que la cuenta de días de vacaciones es del total y lo que
pretendo es decirle al contador que me diga cuantos días tengo
seguidos de vacaciones. las vacaciones pueden ser D, V, F.

En el calendario que puse era solo como muestra pero la lista es de
los 365 días del año.
Respuesta Responder a este mensaje
#4 Héctor Miguel
29/10/2008 - 06:17 | Informe spam
hola, !

(creo que) el codigo que expones tiens dos o tres "areas de mejora" y una que otra "incongruencia" (p.e.)

- en el primer bucle, no tienes una "salida" para el caso de que el operario hubiera sido "encontrado"
(este bucle seguira repitiendose hasta encontrar la primer celda vacia) -???-

- en el segundo bucle (pareciera que) YA NO "importa" quien hubiera sido el operario "encontrado"
(en todos los casos inicias este bucle desde la fila 2 segun la columna "X-Turno" de la ultima fila con operario encontrado)

- tambien hace falta una salida (o modificar/recortar/adaptar/... el bucle que tienes de "For i = 1 To 4999") -???-
de ahi en adelante, simplemente vas "acumulando" las literales "D", "V" y "F"

- (creo que) te saldria mas "barato" si utilizas simples formulas y funciones en la misma hoja de calculo
(si comentas detalles mas "apegados" a la realidad con respecto del arreglo de tus datos) -???-
(procura EVITAR el uso de "supongamos que...", "imaginemos que..." y este tipo de IN-determinadas situaciones)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#5 toribias
29/10/2008 - 09:27 | Informe spam
Hola,

Gracias por tus apreciaciones con las que podré mejorar la calidad del
código y su efectividad. Pero la cuestión principal es si hay la posibilidad
de hacer un contador en el cuente los días seguidos en el que el señor no
viene a trabajar. Con contar.si() me cuenta pero no me indica si están
seguidos o son discontinuos.

"Héctor Miguel" escribió:

hola, !

(creo que) el codigo que expones tiens dos o tres "areas de mejora" y una que otra "incongruencia" (p.e.)

- en el primer bucle, no tienes una "salida" para el caso de que el operario hubiera sido "encontrado"
(este bucle seguira repitiendose hasta encontrar la primer celda vacia) -???-

- en el segundo bucle (pareciera que) YA NO "importa" quien hubiera sido el operario "encontrado"
(en todos los casos inicias este bucle desde la fila 2 segun la columna "X-Turno" de la ultima fila con operario encontrado)

- tambien hace falta una salida (o modificar/recortar/adaptar/... el bucle que tienes de "For i = 1 To 4999") -???-
de ahi en adelante, simplemente vas "acumulando" las literales "D", "V" y "F"

- (creo que) te saldria mas "barato" si utilizas simples formulas y funciones en la misma hoja de calculo
(si comentas detalles mas "apegados" a la realidad con respecto del arreglo de tus datos) -???-
(procura EVITAR el uso de "supongamos que...", "imaginemos que..." y este tipo de IN-determinadas situaciones)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida