Excel - condicional con fechas excel

   
Vista:

condicional con fechas excel

Publicado por Agustin (4 intervenciones) el 15/08/2009 10:40:20
Tengo una base de datos excel con varias columnas. Una de ellas es fecha de albarán y otra de ellas es "estado". En la columna estado, hay dos posibilidades "si" o "no", según el albarán esté facturado o no. Por defecto, el programa me pone que el albarán no está facturado, es decir, en la columna "estado", aparece "no".
Me gustaría hacer un proceso, en el que a partir de dos fechas que se puedan poner arbitrariamente y que están en dos celdas determinadas, si la fecha de albarán pertenece al rango de estas dos fechas, me modifique la columna estado, cambiando el "no" por el "si", sin que cambien las demás celdas que no están incluidas en el rango.
Espero que alguien me pueda ayudar. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:condicional con fechas excel

Publicado por jcs (494 intervenciones) el 15/08/2009 14:06:13
Muy buenas,

Creo que algo como la siguiente macro, podría valerte:
Sub actualizar()
With Worksheets(1).Range("b1:b1000")
Set c = .Find("no", LookIn:=xlValues)
If Not c Is Nothing Then
firstaddress = c.Address
Do
If Range(c.Address).Offset(0, -1).Value <= Cells(2, 4) And Range(c.Address).Offset(0, -1).Value >= Cells(1, 4) Then
c.Value = "si"
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With
End Sub

Eso sí, funcionaría suponiendo que trabajaras en la primera hoja, que la fecha estuviera en la columna A, el “no” en la B, la fecha de inicio en D1 y la de fin en D2, por lo que la macro requeriría los cambios correspondientes.

Si sabes hacerlo, espero que te funcione. Si no, pues dime donde están tus datos y te la cambiaría.

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:condicional con fechas excel

Publicado por Agustín (4 intervenciones) el 16/08/2009 21:25:54
Hola Juanjo:

Ante todo, gracias por tu rápida respuesta.
Efectivamente es lo que estaba buscando, pero lo que pasa es que no tengo mucha idea de Visual Basic, por ello te ruego que me sigas ayudando.

tengo que ejecutar la macro desde una hoja distinta a la que están las fechas y el estado del albarán.
La hoja desde donde quisiera ejecutar la macro se llama FACTURAR. La fecha inicial iría en la celda D4 y la final en la D6.

La hoja donde está la base de datos es Hoja1. La columna A es "facturado" donde tenemos las dos posibilidades "si" ó "no". La columna B es "fecha" donde están las fechas de los albaranes.

Creo que con estos datos me podrás modificar la macro que me mandaste.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:condicional con fechas excel

Publicado por jcs (494 intervenciones) el 17/08/2009 12:11:41
Muy buenas,

Mira a ver si te vale esto:

Sub actualizar()
With Worksheets("Hoja1").Range("A1:A1000")
Set c = .Find("no", LookIn:=xlValues)
If Not c Is Nothing Then
firstaddress = c.Address
Do
If Worksheets("Hoja1").Range(c.Address).Offset(0, 1).Value <= Cells(6, 4) And Worksheets("Hoja1").Range(c.Address).Offset(0, 1).Value >= Cells(4, 4) Then
c.Value = "si"
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstaddress
End If
End With
End Sub

Si quieres más aclaraciones, coméntamelo.

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:condicional con fechas excel

Publicado por Agustín (4 intervenciones) el 17/08/2009 16:24:41
Gracias de nuevo.
No me funciona la macro.
He hecho varias pruebas, y sigue sin funcionar.

- donde pones Offset(0, 1) ¿deberiamos poner (0, -1) como ponías en el mensaje anterior?
Si no hago este cambio, se bloquea el programa. En cambio, si hago el cambio me sale un error que pone 400.

-La macro ¿Dónde la tengo que poner, en la hoja "facturar" o en la hoja "Hoja1"?
he hecho la prueba en las dos y no me funciona.

gracias y disculpa por las molestias

Un saludo,

Agustín
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:condicional con fechas excel

Publicado por jcs (494 intervenciones) el 18/08/2009 08:48:40
Muy buenas,

Yo lo he probado y si que me funciona. El cambio es porque inicialmente los datos de "si" "no" los había previsto en la columna B y las fechas en la A; luego tu me aclaraste que era al revés.

La macro la puedes poner en la hoja FACTURAR, en ThisWorkbook o en un módulo. Pero la tienes que ejecutar desde la hoja FACTURAR, por ejemplo asignándola a un botón.

Como ya he hecho unas pruebas tengo un fichero. Al no tener tu correo te lo he puesto aquí: http://www.sendspace.com/file/br3kwi

Ya me dirás.

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:condicional con fechas excel

Publicado por Agustín (4 intervenciones) el 18/08/2009 16:19:07
Correctísimo, ya me funciona.

Muchisimas gracias.

Agustín
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar