Error 6 desbordamiento en una macro que ha funcionado bien

18/05/2004 - 02:55 por Luis Menéndez | Informe spam
Por favor a ver si algien me puede decir por qué esta macro (que hace bien
su trabajo de totalizar el importe de una serie de elementos repetidos)
termina dando un error de desbordamiento en la fila que pone "suma = suma +
Cells(fila, 9)"


' sumar importes en el último elemento repetido
Dim fila As Integer
Dim suma As Integer
fila = 0
Do
suma = 0
Do
fila = fila + 1
If Cells(fila, 10) = Cells(fila + 1, 10) Then
suma = suma + Cells(fila, 9)
End If
Loop Until Cells(fila, 10) <> Cells(fila + 1, 10)
Cells(fila, 11).Value = suma + Cells(fila, 9).Value

Loop Until IsEmpty(Cells(fila, 1))

End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
18/05/2004 - 03:36 | Informe spam
hola, Luis !

... esta macro ... termina dando un error de desbordamiento en la fila ... "suma = suma + Cells(fila, 9)" [...]



[probablemente] se debe al tipo de datos =>Integer<= que le asignas a las variables :((
=> el 'limite' para 'ese' tipo de datos es: 0 a 23,767 o... -1 a -32,768 <si la fila [por la que se 'va avanzando'] o la 'acumulacion' [suma = suma + 'la_que_sigue']
'llegan' a =>rebasar<= ese limite... alcanzaras el 'desbordamiento' :((
prueba con otro tipo de datos, como... Long o Double [segun lo que necesitas]

saludos,
hector.
Respuesta Responder a este mensaje
#2 Luis Menéndez
18/05/2004 - 19:23 | Informe spam
Y que pasa si no la declaro? y si necesito que sea integer como puedo
ampliar a mas de 23767 o que sea indefinida la cuantia que pueda alcanzar?
"Héctor Miguel" escribió en el mensaje
news:#
hola, Luis !

> ... esta macro ... termina dando un error de desbordamiento en la fila


... "suma = suma + Cells(fila, 9)" [...]

[probablemente] se debe al tipo de datos =>Integer<= que le asignas a las


variables :((
=> el 'limite' para 'ese' tipo de datos es: 0 a 23,767 o... -1 a -32,768


<> si la fila [por la que se 'va avanzando'] o la 'acumulacion' [suma = suma
+ 'la_que_sigue']
'llegan' a =>rebasar<= ese limite... alcanzaras el 'desbordamiento' :((
prueba con otro tipo de datos, como... Long o Double [segun lo que


necesitas]

saludos,
hector.
Respuesta Responder a este mensaje
#3 Héctor Miguel
18/05/2004 - 21:14 | Informe spam
hola, Luis !

Y que pasa si no la declaro?
y si necesito que sea integer como puedo ampliar a mas de 23767 o que sea indefinida [...]



si no la declaras [y siempre y cuando NO establezcas 'Option Explicit' -en la seccion de declarciones-]...
al momento de usarla 'asumira' [por omision] como si la hubieras declarado con un tipo de datos 'Variant'
[igual que si la declaras -p.e.- con un 'Dim Variable' =>SIN el 'As Tipo_de_datos'<=]
=>consulta en la ayuda de vba, en cuanto al uso, declarciones, etc. de los los diferentes tipos de datos< [revisa las 'implicaciones' en cuando a 'memoria reservada', 'alcances', etc.]

si cualquier duda... ¿comentas?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida