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 !

Es un cuadrante para contolar dias 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 dias del mes, todo numeros, excepto, SAB, DOM, FEST (1, 2, 3, SAB, DOM, 7, etc
..lo que quiero e una macro que me ponga un 1 o un 3 en todas las celdas que hay debajo del rotulo de los dias (AE9:BI9)
dejando en blanco aquellas celdas cuyo rotulo sea SAB, DOM o FEST



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

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



=> 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.
Respuesta Responder a este mensaje
#2 Belinda
04/07/2009 - 18:06 | Informe spam
On 3 jul, 19:51, "Héctor Miguel"
wrote:
hola, alonso !

> Es un cuadrante para contolar dias 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 dias del mes, todo numeros, excepto, SAB, DOM, FEST (1, 2, 3, SAB, DOM, 7, etc
> ..lo que quiero e una macro que me ponga un 1 o un 3 en todas las celdas que hay debajo del rotulo de los dias (AE9:BI9)
> dejando en blanco aquellas celdas cuyo rotulo sea SAB, DOM o FEST

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

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

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



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..
Respuesta Responder a este mensaje
#3 Héctor Miguel
05/07/2009 - 03:00 | Informe spam
hola, alonso !

Es un cuadrante de dias trabajados en el que, dependiendo de que el dia 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 modificandolo a media que hay faltas, bajas etc...



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

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



=> y... "el resto" ?????

pregunta 2: segun se desprende, solo es necesario rellenar la primera fila [AE10:BI10]:


No, ese es el primer rango que esta debajo de los dias del mes, debe seguir rellenando filas hasta que se acabe el rango
que se acabara dependiendo de si hay algun nombre en la columna C (empieza en C10...



=> 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.
Respuesta Responder a este mensaje
#4 Belinda
06/07/2009 - 12:50 | Informe spam
On 5 jul, 03:00, "Héctor Miguel"
wrote:
hola, alonso !

> Es un cuadrante de dias trabajados en el que, dependiendo de que el dia 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 modificandolo a media que hay faltas, bajas etc...

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

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

=> y... "el resto" ?????

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

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



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
Respuesta Responder a este mensaje
#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
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida