tengo este codigo la idea es que cuando los dos dias sean iguales me sume 300 porque ese es el monto de alquiler y el cilo solo va a entar cuando los dos dias sean iguales me hace la suma y lla guarda en un variable va asalir del ciclo cuando este se repita n cantidad de veces en este caso 12
''' dia de pago dia que me paga alquiler
''dia de hoy '= hoy() y con una formula saco el dia
Public sub acumulador()
Dim resultado as integer
Dim fecha-ingreso as Sting
Dim fecha-pago as string
dim meses_de_contrato as integer
Range("a1") = fecha-ingreso
Range("a2")= fecha-pago
Range("a3") = meses_de_contrato ' ejemplo 12 meses entonces repitame el ciclo 12 veses
White fecha-ingreso = fecha-pago ' solo una vez al mes se cumple esta condicion cuando los dias coincidan
Then
i=0
For i + 300
Resultado= i
next
End while
entoces lo que ocupo es q cuando fecha-ingreso = fecha-pago el ciclo se repita n (es una vaiable) cantidad de veces para que mes a mes me sume 300 y cuando se cumpla esa cantidad de veces de repeticion me manda un msg box terminado
Mié, 30/11/2016 - 16:39
#1
ciclo for anidado en while
Pero este código no puede funcionar ¿no?
Hay varias cosas que me llaman la atención en este código que adjuntas
Como consejo, No utilices un guión medio en los nombres de tus variables para que no se confunda con una resta. utiliza mejor un guión bajo
¿por qué las variables para las fechas son de tipo texto y no de tipo fecha?
Dim fecha-ingreso as Sting
Dim fecha-pago as string
Otra pregunta: ¿quieres leer los datos de la hoja, o quieres establecer los valores desde la macro a la hoja?
Aquí lo que haces es establecer el valor de las celdas con lo que contenga la variable (que no tienen nada, a no ser que haya líneas del código que no hayas incluido aquí)
Range("a1") = fecha-ingreso
Range("a2")= fecha-pago
Range("a3") = meses_de_contrato ' ejemplo 12 meses entonces repitame el ciclo 12 veses
entiendo que esto de White es una errata
White fecha-ingreso = fecha-pago
en VBA, Then sólo puede ser parte de un IF, no puedes tenerlo sólo en una línea
Then
Los bucles For en VBA no se definen así
For i + 300
sería
For i=1 to 300
dentro del bucle no haces nada, sólo sumar de uno en uno hasta 300
para eso puedes establecer el valor directamente y te ahorras el bucle (Resultado=300)
en VBA Para finalizar un bucle Do se emplea Loop, no End While
End while
------
Ya sé Excel, pero necesito más.
I tienes razon soy nuevo en esto de VBA y no me supe explicar bien lo de las fechas como string es porque la fecha representa los dias es decir de 1 a 31 lo pense asi porque si pongo date tendria este formato DD/mes/año entonces las dos fechas nunca serian iguales
Quiero leer los datos desde una hoja (estos datos serian la fecha de pago , monto , y cuando finaliaza el contrato)
lo que intentaba hacer era basicamente sumar un monto mes a mes porque son alquileres y guardarlo en un varible
para que si el contrato dura un año y paga el 10 de cada mes en ese dia me sume el monto de la variable
posdata : Este es mi primer programa
Muchas gracias