Macro condiconado

03/07/2009 - 17:04 por Belinda | Informe spam
Hola amigos...

Hace días que no doy "la vara" al grupo, ahora me ha entrado el
ansia...

A ver mi me explico para que me ayudéis. Es un cuadrante para contolar
días trabajados...

1) En C10 hasta C... tengo datos (nombre de personas).
2) En F10 hasta F...tengo un dato: SEV, CAD, GRA, que indica el
convenio de cada uno
3) En AE9: BI9 genero los diás del mes, todo números, excepto, SAB,
DOM, FEST (1, 2, 3, SAB, DOM, 7, etc

..lo que quiero e una macro que me ponga un 1 ó un 3 en todas las
celdas que hay debajo del rótulo de los días (AE9:BI9), dejando en
blanco aquellas celdas cuyo rótulo sea SAB, DOM o FEST

..como no se donde acaba ese rango (AE10:BI10), (varia todos los
meses) la macro debería averiguarlo ya que depende de que haya datos
en la columna C10, (los nombres de las personas).

Saludos y como siempre gracias por vuestro tiempo..

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
03/07/2009 - 19:51 | Informe spam
hola, alonso !

Mostrar la cita
=> pregunta 1: de que depende que se ponga un 1 o un 3 ???
=> pregunta 2: segun se desprende, solo es necesario rellenar la primer fila [AE10:BI10]
con lo que va a resultar un cuadrante "lleno" de los mismos datos en la fila 10 por el resto de registros/personas ???

Mostrar la cita
=> si la "base" es la columna "C", puedes obtener la ultima fila "retrocediendo" desde la ultima fila de la hoja [C65536].End(xlUp)
o "avanzando" desde la primer fila del rango (asumiendo que existen al menos dos registros) [C10].End(xlDown)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
#2 Belinda
04/07/2009 - 18:06 | Informe spam
On 3 jul, 19:51, "Héctor Miguel"
wrote:
Mostrar la cita
Hola Héctor, es agradable (sin menospreciar la ayuda de nadie) que me
contestes...
Contesto a lo que me pides, a ver si puedes entender lo que pretendo.
Es un cuadrante de dìas trabajados en el que, dependiendo de que el
día tenga un 1 o un 3 me haga otro cuadrante con los salarios que
correspondan (si tiene 1, tiene dieta, si tiene 3 tiene plus
transporte, etc.
Como tengo que controlar a una plantilla de 80 personas, este
cuadrante lo genero a primeros de mes y parto de la base de que todos
trabajan todo el mes. Luego voy modificándolo a media que hay faltas,
bajas etc...

pregunta 1: de que depende que se ponga un 1 o un 3 ??? De que el
texto que hay en la celda F10, (...F11, F12), etc contenga SEV, CAD,
GRA (si F10="SEV";1; Si(F10="CAD";3;(Si(F10="GRA";1...

pregunta 2: segun se desprende, solo es necesario rellenar la primera
fila [AE10:BI10]: No, ese es el primer rango que está debajo de los
dias del mes, debe seguir rellenando filas hasta que se acabe el
rango, que se acabará dependiendo de si hay algún nombre en la columna
C (empieza en C10...

Gracias por tú interés..
#3 Héctor Miguel
05/07/2009 - 03:00 | Informe spam
hola, alonso !

Mostrar la cita
=> los "etc." hacen dificil adivinar (y ademas acertar) como es el arreglo real de los datos de quien consulta (?????)

Mostrar la cita
=> y... "el resto" ?????

Mostrar la cita
=> creo que el concepto (o la idea) de lo que necesitas resolver es +/- etendible...
el detalle esta en lo que no se comenta en la consulta (los etc.)

=> como se puede (re)crear un modelo y entorno de trabajo EXACTAMENTE "igual al tuyo" ?????

saludos,
hector.
#4 Belinda
06/07/2009 - 12:50 | Informe spam
On 5 jul, 03:00, "Héctor Miguel"
wrote:
Mostrar la cita
Hola Héctor, lo del etc es para indicar que el rango de celdas sigue
ese orden...

Resumiendo, sería esto con +- 80 personas...

Celda C9, Nombre y apellidos
C10: Manuel Perez
C11: Octavio Paz
C12: Jesús Saez
Celda F9: Convenio
F10: SEV
F11: GRA
F12: CAD
Luego el rango de los días del mes, debajo de los cuales debe poner 1,
3 ó nada dependiendo de que en en la columna F haya el dato SEV o CAD
pondría 1 y si es GRA pondría 3. Todos tienen obligatoriamente este
dato
AE9:1
AF9:2
AG9:3
AH9:SAB
AI9:DOM
AJ9:6
AK9:7
...hasta completar todos los días del mes deJulio.

En los rangos adyacentes a estos hay otros datos, que no intervienen
en la macro...

Saludos
#5 KL
06/07/2009 - 13:25 | Informe spam
Hola Belinda,

Mientras vuelve HM, mira a ver si te vale esto (he cogido los parametros de
tu ejemplo inicial):

Sub test()
Dim lngLRow As Long
With ActiveSheet
lngLRow = .Cells(.Rows.Count, "C").End(xlUp).Row
.Range("AE10:BI" & lngLRow) = _
Evaluate("IF(ISNUMBER(AE9:BI9),IF((D10:D" & lngLRow _
& "=""CAD"")+(D10:D" & lngLRow & "=""SEV""),3,IF(D10:D" & _
lngLRow & "=""GRA"",1,"""")),"""")")
End With
End Sub

Saludos,
KL
Ads by Google
Search Busqueda sugerida