Problema con fechas en macros

24/07/2007 - 04:51 por Martín | Informe spam
Hola estoy comenzando con macros y tengo el siguiente problema:

Tengo que realizar una macro en la cual, ingreso en una celda una
fecha (fecha inicial) en otra la fecha final y en otra si calculo
semestralmente(6 meses) o anualmente(12 meses)...
y tengo que desplegar todas las fechas desde la inicial hasta la final
con una diferencia de esos meses

Ejemplo_

fec ini/10/2007
fec fin/10/2010
incremento= 6

entonces quiero saber el código en VB para que cuando apreto un botón
en excel se depliegue lo siguiente:

10/10/2007 (empieza acá porque es la fecha inicial)
10/04/2008 (el anterior +6 meses)
10/10/2008 (el anterior +6 meses)
10/04/2009 (el anterior +6 meses)
10/10/2010 (el anterior +6 meses) y termina acá porque es la fecha
final


Cualquier ayuda se agradece, ya que lo preciso urgentemente
Martin!

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
24/07/2007 - 07:01 | Informe spam
hola, Martín !

1) no dejes que lo *urgente* le reste importancia a... *lo importante*...
-> los detalles que no has comentado [p.e.]

a) en donde quieres que se despliegue... lo que quieres que se despliegue ?
en un formulario de usuario [y en que tipo de control] ?
en un cuadro de mensajes ?
en un rango de celdas [en cuales] ?
en un cuadro de lista o en un control desplegable o en una lista de validacion ?

b) que se deberia hacer si la fecha final no coincide/comprende/... un lapso de tiempo *exacto* con el intervalo ?

c) que es lo que tienes pensado hacer posteriormente con los datos que se desplieguen ?
necesitas desplegar tambien alguna otra informacion *relacionada* [como/cuando/de donde/a donde/...] ?
necesitas seleccionar de entre las fechas desplegadas una, varias o todas ?

2) es conveniente que comentes [de preferencia +/- exactamente] *que* es lo que realmente necesitas resovler -?-
[toma en cuenta que de este lado del mensaje no se tiene la *panoramica* que tu estas viendo] :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
Hola estoy comenzando con macros y tengo el siguiente problema:
Tengo que realizar una macro en la cual, ingreso en una celda una fecha (fecha inicial) en otra la fecha final
y en otra si calculo semestralmente (6 meses) o anualmente (12 meses)...
y tengo que desplegar todas las fechas desde la inicial hasta la final con una diferencia de esos meses
Ejemplo_
fec ini/10/2007
fec fin/10/2010
incremento= 6
entonces quiero saber el codigo en VB para que cuando apreto un boton en excel se depliegue lo siguiente:
10/10/2007 (empieza aca porque es la fecha inicial)
10/04/2008 (el anterior +6 meses)
10/10/2008 (el anterior +6 meses)
10/04/2009 (el anterior +6 meses)
10/10/2010 (el anterior +6 meses) y termina aca porque es la fecha final
Cualquier ayuda se agradece, ya que lo preciso urgentemente
Respuesta Responder a este mensaje
#2 Martín
24/07/2007 - 14:07 | Informe spam
Si tenés razón, lo escribí muy ancioso...

1) en un rango de celdas es la salida

2)Que se deberia hacer si la fecha final no coincide/comprende/... un
lapso de tiempo *exacto* con el intervalo ?

3)otra información pero son restas, multiplicaciones, etc, que sé como
hacerlas

lo que quiero es que apretandó un botón (on click), se depliegue en
las celdas las fechas correspondientes, desde la fecha inicial hasta
la final, incrementando según un número que tengo en otra celda

Gracias por las respuesta

Martin
Respuesta Responder a este mensaje
#3 Héctor Miguel
25/07/2007 - 04:43 | Informe spam
hola, Martín !

Si tenes razon, lo escribi muy ancioso...
1) en un rango de celdas es la salida
2) Que se deberia hacer si la fecha final no coincide/comprende/... un lapso de tiempo *exacto* con el intervalo ?
3) otra informacion pero son restas, multiplicaciones, etc, que se como hacerlas
lo que quiero es que apretando un boton (on click), se depliegue en las celdas las fechas correspondientes
desde la fecha inicial hasta la final, incrementando según un numero que tengo en otra celda



1) no se tu... pero [a mi me parece que] *de todas* las preguntas, solo contestaste a una [y ademas... a medias] :-((
-> solo *se* que la salida la esperas en un rango de celdas [sigo sin saber en cuales] -?-

2) no dudo que de la otra informacion [restas, multiplicaciones, etc.] tengas claro como resolverlas :))
-> lo que no se, es si con la siguiente propuesta mande a la goma algunas formulas que ya tengas *arregladas* -?-
-> supongo que es *valido*, ya que voy a tener que *adivinar/suponer/...* situaciones [de seguro] diferentes a *tu realidad*

3) estos son *mis* supuestos:
a) pones en la celda 'A1' la fecha inicial [p.e. 10/102007]
b) pones en la celda 'A2' la fecha final [p.e. 10/10/2010]
c) pones en la celda 'A3' el incremento en meses [p.e. 6]
d) la columna 'C' esta libre para el accionar de las macros y el despliegue de las fechas se iniciara en la celda 'C2'

-> copia/pega las siguientes lineas en un modulo de codigo normal/general/estandar/...
OJO: corre pruebas sobre una hoja nueva, y si te convencen los resultados... [ya decidiras si la asignas a algun atajo o boton]

si cualquier duda [o te animas a dar informacion mas... *precisa*]... comentas ?
saludos,
hector.

Sub Lapsus_Fechas()
Dim n_Celdas As Byte
n_Celdas = Evaluate("datedif(a1,a2,""m"")/a3+1")
Columns("c").Clear
With Range("c2").Resize(n_Celdas)
.FormulaArray = "=date(year(a1),month(a1)+(row(indirect(""1:""&" & n_Celdas & "))-1)*a3,day(a1))"
.NumberFormat = "dd/mm/yyyy"
.Value = .Value
End With
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida