Message error: Desbordamiento

lu_argenitna

Board Regular
Joined
Apr 4, 2006
Messages
106
Hola, estoy tratando de correr una macro que contiene una fórmula y cuando llega a ese punto me aparece el error: "Desbodamiento"
Es una fórmula de este tipo:
form = (Cells(inie - 2, 39) * Cells(inie - 2, 37) + Cells(fils - 2, 39) * Cells(fils - 2, 37)) / Cells(fils, 37)
en donde inie y fils son dos dim definidas con anterioridad.
también intenté armarla con R" &inie-2&" pero me tiraba más errores.

Alguien me puede ayudar?
Gracias.
 

Excel Facts

Ambidextrous Undo
Undo last command with Ctrl+Z or Alt+Backspace. If you use the Undo icon in the QAT, open the drop-down arrow to undo up to 100 steps.

galileogali

Well-known Member
Joined
Oct 14, 2005
Messages
748
El uso que haces de CELLS no es el apropiado. Pero realmente porque no escribes la formula en una CELDA, tal como la escribirias en esa celda sin VBA.
Luego PRENDES el GRABADOR DE MACROS.
A CONTINUACION, vas a la celda que contiene la formula, haces F2, detienes la GRABADORA.
fijate que te quedo, en el modulo que crea la GRABADORA.


GALILEOGALI
 

lu_argenitna

Board Regular
Joined
Apr 4, 2006
Messages
106
Eso ya lo hice, el tema es que las celdas son variantes. Dependen justamente de la variable que definí anteriormente.
Si las celdas no fuesen variantes sería menos complicado.
Tengo que ver como hago para introducir la variante en la fórmula.
En definitiva la fórmula que quiero armar es: =(r1c2*r1c1+r10c2*r10c1)/rc11
en donde las filas son las variantes que ya defini como inie y fils
 

Greg Truby

MrExcel MVP
Joined
Jun 19, 2002
Messages
10,019
Hola Luciana,

Por lo general la forma más fácil es cambiar Excel para mostrarle las fórmulas en forma R1C1, copiarla y pegarla a su código. Es raro que tengo que construir una fórmula R1C1 agregando hileras de characteres, pero sí sucede. Aquí hay pedazos de código donde yo he hecho esto...
Code:
Public Enum eg_Columns
    colCustPO = 1
    colXmitID           '  2  B
    colCustName         '  3  C
    colAcctNum          '  4  D
    colGroupWhse        '  5  E
    colInvcNum          '  6  F
    colInvcLn           '  7  G
    colOrderNum         '  8  H
    colOrderLn          '  9  I
    colTPMNum           ' 10  J
    colTPMLn            ' 11  K
    col1stTry           ' 12  L
    colAllocD           ' 13  M
    colRecdD            ' 14  N
    colEntryD           ' 15  O
    colPODate = 15      ' (column redefinition)
    colPOTAT            ' 16  P
'...
    colMBoL             ' 51 AY
    colPNSupp           ' 52 AZ
    colPartDesc         ' 53 BA
    MaxCount = 53
End Enum

'...
'¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 Private Sub TrimAndWriteFormulas()
'______________________________________________________________________________
   
    Dim rngCurr As Range, rngCurr2 As Range, rngTarget As Range, rngTCell As Range
    Dim v As Variant
    Dim r&, c%, lngCalcMode As XlCalculation
    Set rngCurr = [A1].CurrentRegion
    Set rngCurr2 = rngCurr.Offset(1, 0).Resize(rngCurr.Rows.Count - 1)
       
    ufxl_ProgressIndicator.SubLabelCaption = "Trimming Spaces"
    ufxl_ProgressIndicator.UpdateProgressMajor 0.001, "TrimSpaces"
    
    myTrim rngCurr2.Columns(eg_Columns.colCustName), " [1 of 10]"
    ufxl_ProgressIndicator.UpdateProgressMajor 0.1, "TrimSpaces"

'...

    Set rngTarget = rngCurr2.Columns(eg_Columns.colBatchNDay)               ' batched by next bus day
    ' =NETWORKDAYS(RC[-3],RC[1], Holidays) <= 2
    Application.StatusBar = "Writing Formula for 'Batched by Next Bus. Day'."
    rngTarget.FormulaR1C1 = "=NETWORKDAYS(RC[" & _
                            (eg_Columns.colOpenD - eg_Columns.colBatchNDay) & _
                            "],RC[" & _
                            (eg_Columns.colOpenD - eg_Columns.colBatchNDay) & _
                            "], Holidays) <= 2"
    ufxl_ProgressIndicator.UpdateProgressMajor 4 / 15, "WriteFormulae"
    PinteLo rngTarget
    
    Set rngTarget = rngCurr2.Columns(eg_Columns.colTimePick)                ' time to pick
    Application.StatusBar = "Writing Formula for 'Time to Pick'."
    ' =(+RC[-2]+RC[-1])-(RC[-6]+RC[-5])
    rngTarget.FormulaR1C1 = "=(+RC[" & _
                            (eg_Columns.colPickD - eg_Columns.colTimePick) & _
                            "]+RC[" & _
                            (eg_Columns.colPickT - eg_Columns.colTimePick) & _
                            "])-(RC[" & _
                            (eg_Columns.colBatchD - eg_Columns.colTimePick) & _
                            "]+RC[" & _
                            (eg_Columns.colBatchT - eg_Columns.colTimePick) & _
                            "])"
    ufxl_ProgressIndicator.UpdateProgressMajor 5 / 15, "WriteFormulae"
    PinteLo rngTarget, 1
'...
End Sub

Como usted puede ver hay que ir quebrando la fórmula a pedazos de characteres fija y characteres que vas a reemplazar con sus variables. ¿Me pregunto si su error es nada más que un caso donde está poniendo referencias absolutas en vez de relativas? ¿Tal vez algo así sirva?
Code:
strFormula = "=(R[1]C[2]*R[1]C[1]+R[10]C[2]*R[10]C[1])/RC[11]"

Espero que ésto le ayude un poco.

Cordialmente,
 

lu_argenitna

Board Regular
Joined
Apr 4, 2006
Messages
106
Greg, muchas gracias por la ayuda!
La verdad es que mi nivel no es tan avanzado como para poder entender todos los códigos que me muestras.
De todos modos, sailepaty tenía razón, el error surge cuando me da cero. Por lo que ahora debería descubrir la forma de que esto no suceda.
Nuevamente gracias por la ayuda.
Saludos,
 

Forum statistics

Threads
1,141,427
Messages
5,706,374
Members
421,446
Latest member
rena jhon

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Top