Excel - VBA en Excel

   
Vista:

VBA en Excel

Publicado por Alejandra (2 intervenciones) el 08/09/2017 00:27:58
Hola gente, soy una estudiante de universidad y tengo una duda con un ejercicio que me encargaron de tarea. Es sobre subrutinas y ciclos en Excel...
La verdad es que no entiendo nada y quisiera saber si alguien me puede explicar o ayudar un poco con el ejercicio de tarea (no quiero que lo hagan por mi, solo si me pueden dar un poco de tutoria sobre este)
Les agradecería muchísimo!
Saludos!

Aqui abajo les dejo de que trata el problema.

"Escribir una modulo en VBA (subrutina o función) el más apropiado que dado un número leído
de celdas de excel el cual representa la posición del término de la siguiente serie, calcule el
valor de dicha posición y la suma de los valores de la serie hasta dicha posición y los muestre
en celdas debidamente etiquetadas.
Serie: 1, 3, 4, 13, 29, 198,….
Para calcular un numero nuevo de la serie es: penúltimo2 + último. Por ejemplo si queremos
calcular el 4 es = 12+3
Ejemplo:
Si se recibe como parámetro un 1 muestra: valor =1, suma =1
Si se recibe como parámetro un 2 muestra: valor =3, suma=4
Si se recibe como parámetro un 4 muestra: valor=13, suma = 21"
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

VBA en Excel

Publicado por JuanC juanc2942@gmail.com (1228 intervenciones) el 08/09/2017 00:38:56
la verdad que no entendí un carajo, sino ya lo hubiese hecho...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

VBA en Excel

Publicado por Alejandra (2 intervenciones) el 08/09/2017 03:55:54
yo sigo sin entender, no tengo idea de nada.. jaja la intención es lo que cuenta, así que gracias de todas formas
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

VBA en Excel

Publicado por Cacho R (51 intervenciones) el 09/09/2017 00:21:58
Hola! Alejandra (y Juan C)
Me llama la atención lo que pides...

Y no porque no se pueda hacer sino porque la precisión del Excel no supera a los 15 dígitos.
Dicho de otro modo: el valor máximo del parámetro será 11. Te muestro como hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function SerieMR(Q%) As Double
Dim Vec, i%, Tmp
 
Vec = Array(CDbl(1), CDbl(3))
If Q = 1 Then SerieMR = 1: Exit Function
If Q = 2 Then SerieMR = 4: Exit Function
SerieMR = CDbl(4)
 
For i = 3 To Q
  Tmp = Vec(1)
  Vec(1) = Vec(0) ^ 2 + Vec(1)
  Vec(0) = Tmp
  SerieMR = SerieMR + Vec(1)
Next
End Function
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

VBA en Excel

Publicado por JuanC juanc2942@gmail.com (1228 intervenciones) el 09/09/2017 13:35:41
bueno, yo por mi parte me 'enloquecí' hasta que entendí el enunciado...
el problema era 'penúltimo2' que debe ser (penúltimo) ^ 2 ó (penúltimo * penúltimo)

aquí otra posible solución...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Option Explicit
 
Sub test()
Dim suma#, valor#, i&
i = InputBox("Ingrese posición:")
If calcular(Val(i), valor, suma) Then
   MsgBox "valor=" & valor & " suma=" & suma
End If
End Sub
 
Function calcular(ByVal n As Long, ByRef valor As Double, ByRef suma As Double) As Boolean
Dim i&, v#
Dim sum#
Dim col As New Collection
calcular = False
If n < 0 Then
   Exit Function
End If
If n > 10 Then
   MsgBox "Valor 'demasiado grande'!"
   calcular = False
   Exit Function
End If
 
calcular = True
If n = 1 Then
   valor = 1: suma = 1
   Exit Function
End If
If n = 2 Then
   valor = 3: suma = 4
   Exit Function
End If
 
col.Add 1
col.Add 3
sum = 4
 
For i = 3 To n
    v = col.Item(i - 1) + (col.Item(i - 2)) ^ 2
    col.Add v
    sum = sum + v
Next
 
suma = sum
valor = v
End Function
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
Revisar política de publicidad