# "Concatenar" y dar formato a fecha



## gustavomeeuwes (Nov 2, 2010)

Hola de nuevo !!!

Tengo en una macro:

' Estoy trabajando en la Hoja1
Range("A1").FormulaR1C1 = "Fecha: " & Sheets("Hoja2").Range("A1")

donde Sheets("Hoja2").Range("A1"), es una fecha con formato d-mmm-yyyy, o sea NumberFormat = "[$-C0A]d-mmm-yyyy;@". Supongamos qe el valor de esa celda es: 20-oct-2010

Como resultado en la celda A1 de la Hoja1 obtengo:
Fecha: 20/10/2010

Pregunta:
Hay alguna forma de "forzar" que la fecha la ponga en el formato que tengo en toda la planilla, d-mmm-yyyy
Es decir, que en la celda A1 de la Hoja1 obtenga:
Fecha: 20-oct-2010

Gracias
Saludos
Gustavo


----------



## Marcelo Branco (Nov 2, 2010)

Gustavo,

Prueba esta

Range("A1").FormulaR1C1 = "Fecha: " & Sheets("Hoja2").Range("A1").*Text*

M.


----------



## gustavomeeuwes (Nov 2, 2010)

Hola Marcelo:
Al agregarle .Text no me hace ningún cambio.
Saludos
Gustavo


----------



## Marcelo Branco (Nov 2, 2010)

Gustavo,

Hoja2 A1
<TABLE style="WIDTH: 62pt; BORDER-COLLAPSE: collapse" border=0 cellSpacing=0 cellPadding=0 width=83><COLGROUP><COL style="WIDTH: 62pt; mso-width-source: userset; mso-width-alt: 3035" width=83><TBODY><TR style="HEIGHT: 15pt" height=20><TD style="BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent; WIDTH: 62pt; HEIGHT: 15pt; BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid" class=xl63 height=20 width=83 align=right>20/out/2010</TD></TR></TBODY></TABLE>

Después de la macro
Hoja1 A1
<TABLE style="WIDTH: 106pt; BORDER-COLLAPSE: collapse" border=0 cellSpacing=0 cellPadding=0 width=141><COLGROUP><COL style="WIDTH: 106pt; mso-width-source: userset; mso-width-alt: 5156" width=141><TBODY><TR style="HEIGHT: 15pt" height=20><TD style="BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent; WIDTH: 106pt; HEIGHT: 15pt; BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid" class=xl65 height=20 width=141>Fecha: 20/out/2010</TD></TR></TBODY></TABLE>

No és esto que necessitas?

M.


----------



## gustavomeeuwes (Nov 2, 2010)

Hola Marcelo;
En mi planilla lo pone como:
Fecha: 20/10/2010
y debería ser:
Fecha: 20-out-2010

Gracias por la paciencia.
Saludos
Gustavo


----------



## Marcelo Branco (Nov 2, 2010)

Gustavo,

Lo mismo con
Hoja2 A1
<TABLE style="WIDTH: 62pt; BORDER-COLLAPSE: collapse" border=0 cellSpacing=0 cellPadding=0 width=83><COLGROUP><COL style="WIDTH: 62pt; mso-width-source: userset; mso-width-alt: 3035" width=83><TBODY><TR style="HEIGHT: 15pt" height=20><TD style="BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent; WIDTH: 62pt; HEIGHT: 15pt; BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid" class=xl65 height=20 width=83 align=right>20-out-2010</TD></TR></TBODY></TABLE>

Después de la macro
Hoja1 A1
<TABLE style="WIDTH: 106pt; BORDER-COLLAPSE: collapse" border=0 cellSpacing=0 cellPadding=0 width=141><COLGROUP><COL style="WIDTH: 106pt; mso-width-source: userset; mso-width-alt: 5156" width=141><TBODY><TR style="HEIGHT: 15pt" height=20><TD style="BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent; WIDTH: 106pt; HEIGHT: 15pt; BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid" class=xl65 height=20 width=141>Fecha: 20-out-2010</TD></TR></TBODY></TABLE>

Que formato tiene Hoja1 A1?

M.


----------



## gustavomeeuwes (Nov 3, 2010)

Excelente Marcelo.
Tenía problemas con el formato de la celda. Lo puse en General y funciona OK.
Muchísimas gracias
Saludos
Gustavo


----------



## Marcelo Branco (Nov 3, 2010)

> Tenía problemas con el formato de la celda. Lo puse en General y funciona OK.


 
Complicada esa cosa de formatos en Excel...

Sospeché que podría ser algo relacionado con el formato de la celda A1 en Hoja1...

Saludos

M.


----------



## gustavomeeuwes (Nov 3, 2010)

Nuevamente gracias por la ayuda desinteresada y compartir los conocimientos con gente como yo, que estamos dando nuestros primeros pasos con las macros.
Un cordial saludo
Gustavo


----------



## Greg Truby (Nov 4, 2010)

otra posibilidad:
	
	
	
	
	
	



```
with sheet1.range("a1")
    .formular1c1="=sheet2!r1c1"
    .numberformat = """Fecha :"" d-mmm-yyyy"
end with
```
 
Asi, siempre se queda como una fecha y no texto y si la fecha en la segunda cambia, también cambia en la primera.


----------



## gustavomeeuwes (Nov 2, 2010)

Hola de nuevo !!!

Tengo en una macro:

' Estoy trabajando en la Hoja1
Range("A1").FormulaR1C1 = "Fecha: " & Sheets("Hoja2").Range("A1")

donde Sheets("Hoja2").Range("A1"), es una fecha con formato d-mmm-yyyy, o sea NumberFormat = "[$-C0A]d-mmm-yyyy;@". Supongamos qe el valor de esa celda es: 20-oct-2010

Como resultado en la celda A1 de la Hoja1 obtengo:
Fecha: 20/10/2010

Pregunta:
Hay alguna forma de "forzar" que la fecha la ponga en el formato que tengo en toda la planilla, d-mmm-yyyy
Es decir, que en la celda A1 de la Hoja1 obtenga:
Fecha: 20-oct-2010

Gracias
Saludos
Gustavo


----------



## gustavomeeuwes (Nov 4, 2010)

Hola Greg:
Gracias por la respuesta.
Funciona OK, aunque en realidad no preciso que se actualice. Una vez ejecutada la macro, que es para presentar un informe, al volver me borra el contenido de la CeldaA1 Hoja2.
Nuevamente gracias por la ayuda.
Cordiales Saludos
Gustavo


----------



## gustavomeeuwes (Nov 4, 2010)

No sabía que dentro del NumberFormat podía agregar Texto.
Una nueva enseñanza.
Gracias
Saludos
Gustavo


----------



## Marcelo Branco (Nov 4, 2010)

Greg Truby said:


> otra posibilidad:
> 
> 
> 
> ...


 
Hi Greg,

Una solución mucho mejor que la mía.

Dudas:
Quando usar FormulaR1C1?  

En esta situación era necessario?

Nunca sé cuándo y por qué utilizar R1C1

Saludos

M.


----------



## Greg Truby (Nov 8, 2010)

Marcelo Branco said:


> ...Quando usar FormulaR1C1?
> 
> En esta situación era necessario?
> 
> ...


 
Marcelo,

En muchos casos le da igual. Pero por lo general cuando estoy contruyendo fórmulas para asignar a un rango de celdas lo que hago es definir las posiciones de las columnas en constantes enumerados al nivel del módulo o a nivel global y en esas circumstancias, sí es más fácil usar notación R1C1. 

La razón por la cual hago así es que si después tengo que insertar o suprimir una(s) columna(s) es nada más cuestión de poner al día las definiciones de las constantes de columnas y ya, todos las fórmulas hechos en el módulo se corrigen. También cuando uno necesita hacer referencia a una fila o columa de una variable tipo rango usar R1C1 ayuda hacer la vida más sencilla. Ejemplos:

*Sección de Declaraciones en la Cabeza del Módulo*

```
Private Enum me_ExhCols
    ecExhibitor = 1
    ecTheater
    ecPlayer
    ecDemog
    ecPermut = 4        '// starts as 5th column, but Demograph column gets deleted
    ecNetwork
    ecMatch
End Enum
```
*Dos extractos del mismo módulo*

```
...
    '// if on the shortlist, will match (return number), if not #N/A
    Let f = "=Match(RC[" & me_ExhCols.ecExhibitor - me_ExhCols.ecMatch & "] & ""|"" & " _
          & "RC[" & me_ExhCols.ecTheater - me_ExhCols.ecMatch & "]," _
          & rngExhibShort.Columns(me_ExhCols.ecExhibitor).Address(True, True, xlR1C1) _
          & " & ""|"" & " _
          & rngExhibShort.Columns(me_ExhCols.ecTheater).Address(True, True, xlR1C1) _
          & ",0)"
...
            '// drop in help columns that fetch back the start and stop times for
            '// the offset splits B thru D
            With rngMatchCol1
                Let f = "=Index(R2C[" & rngTitleList.Column + 1 - .Column & "]:" _
                      & "R" & m_wsPxmlActive.Cells(Rows.Count, rngTitleList.Column).End(xlUp).Row _
                      & "C[" & rngTitleList.Column + 1 - .Column & "]," _
                      & "Match(RC" & rngTemp.Column & "," & gc_strRngNamePXML_Split & "A" & ",0))"
                With .Resize(, 2)
                    .FormulaR1C1 = f
                    .NumberFormat = "h:mm AM/PM;;@"
                    .EntireColumn.Hidden = True
                End With
            End With
...
```


----------



## Marcelo Branco (Nov 9, 2010)

Greg,

Gracias por su respuesta. 

Estoy tratando de entender lo que ha escrito en el post anterior 


Enumeraciones al nivel de modulo o global para definir posiciones de columnas... (yo sé que és solo un ejemplo...)

Espero que lo voy a entender 

M.


----------



## gustavomeeuwes (Nov 11, 2010)

, Je. Totalmente sobrepasado. Escapa a mis modestos conocimientos de principiante.
Saludos.
Gustavo


----------



## Greg Truby (Nov 11, 2010)

Ok suponemos que tenemos una hoja con datos así en A a C:
<!-- Please do not remove this header --><!-- Table easily created from Excel with ASAP Utilities (http://www.asap-utilities.com)  --><table border="1" bordercolor="#C0C0C0" bordercolordark="#FFFFFF" cellspacing="0"><tr><td bgcolor="#000000" width="147" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Número de Artículo</b></font></td><td bgcolor="#000000" width="120" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Precio</b></font></td><td bgcolor="#000000" width="69" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Inventario</b></font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">A-1232-456-A</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">45</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">251</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">1-222-333-41</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">18</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">118</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">5-147-198-44</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">11</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">94</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">J-9987-135-X</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">122</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">48</font></td></tr></table>
Y queremos que VBA agregue una columna con el valor del inventario. Tenemos dos opciones, una con usar .FORMULA y otra con usar .FORMULAR1C1. Si estamos convencidos que jamás nadie va a cambiar la estructura de la hoja no importa. Ambas opciones nos da igual.

```
Sub InsertarValorInvent_A1()
    Dim rngCurr As Excel.Range, rngTarget As Excel.Range
    '// para ser más sencilla usamos la hoja activa
    Set rngCurr = Range("A1").CurrentRegion
    With rngCurr
        Set rngTarget = .Offset(, .Columns.Count).Resize(1, 1)
        .Range("A1").Copy
    End With
    With rngTarget
        .PasteSpecial xlPasteFormats
        .Value = "Valor Invent"
        Set rngTarget = .Offset(1).Resize(rngCurr.Rows.Count - 1, 1)
    End With
    With rngTarget
        '// using .Formula
        .Formula = "=B2*C2"
        .NumberFormat = "#,000"
        .EntireColumn.ColumnWidth = 16
    End With
End Sub
Sub InsertarValorInvent_R1C1()
    Dim rngCurr As Excel.Range, rngTarget As Excel.Range
    '// para ser más sencilla usamos la hoja activa
    Set rngCurr = Range("A1").CurrentRegion
    With rngCurr
        Set rngTarget = .Offset(, .Columns.Count).Resize(1, 1)
        .Range("A1").Copy
    End With
    With rngTarget
        .PasteSpecial xlPasteFormats
        .Value = "Valor Invent"
        Set rngTarget = .Offset(1).Resize(rngCurr.Rows.Count - 1, 1)
    End With
    With rngTarget
        '// using .FormulaR1C1
        .FormulaR1C1 = "=RC[-2]*RC[-1]"
        .NumberFormat = "#,000"
        .EntireColumn.ColumnWidth = 16
    End With
End Sub
```
PERO, si en una semana llega el jefe y nos dice «¿mira, ese reporte que automatizó usted la semana pasada? Bueno dije a informática que ponga otra columna. ¿Eso no afectará su macro, verdad que no?» Y la respuesta tiene que ser «depende». Porque si usted usó .FORMULA y puso la columna al final, no hay problema, pero si usted usó .FORMULA e insertaron la columna en B o C entonces sí hay problema. Mientras si usó .FORMULAR1C1 falla si metieron a la derecha pero funciona si metieron a la izquierda o sea:
<!-- Please do not remove this header --><!-- Table easily created from Excel with ASAP Utilities (http://www.asap-utilities.com)  --><table border="1" bordercolor="#C0C0C0" bordercolordark="#FFFFFF" cellspacing="0"><tr><td bgcolor="#000000" width="147" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Número de Artículo</b></font></td><td bgcolor="#000000" width="120" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Precio</b></font></td><td bgcolor="#000000" width="69" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Inventario</b></font></td><td bgcolor="#953735" width="116" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Columna Nueva</b></font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">A-1232-456-A</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">45</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">251</font></td><td bgcolor="#FFFFFF" width="116" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">5</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">1-222-333-41</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">18</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">118</font></td><td bgcolor="#FFFFFF" width="116" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">10</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">5-147-198-44</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">11</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">94</font></td><td bgcolor="#FFFFFF" width="116" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">15</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">J-9987-135-X</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">122</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">48</font></td><td bgcolor="#FFFFFF" width="116" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">20</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="116" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td></tr><tr><td bgcolor="#215867" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Base de Solución</b></font></td><td bgcolor="#215867" width="120" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Resultado</b></font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="116" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">.FORMULA</font></td><td bgcolor="#FFFFFF" width="120" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">FUNCIONA</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="116" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">.FORMULAR1C1</font></td><td bgcolor="#FFFFFF" width="120" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">FALLA</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="116" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td></tr></table>
<!-- Please do not remove this header --><!-- Table easily created from Excel with ASAP Utilities (http://www.asap-utilities.com)  --><table border="1" bordercolor="#C0C0C0" bordercolordark="#FFFFFF" cellspacing="0"><tr><td bgcolor="#000000" width="147" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Número de Artículo</b></font></td><td bgcolor="#953735" width="120" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Columna Nueva</b></font></td><td bgcolor="#000000" width="69" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Precio</b></font></td><td bgcolor="#000000" width="104" height="25" align="center" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Inventario</b></font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">A-1232-456-A</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">5</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">45</font></td><td bgcolor="#FFFFFF" width="104" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">251</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">1-222-333-41</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">10</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">18</font></td><td bgcolor="#FFFFFF" width="104" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">118</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">5-147-198-44</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">15</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">11</font></td><td bgcolor="#FFFFFF" width="104" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">94</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">J-9987-135-X</font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">20</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">122</font></td><td bgcolor="#FFFFFF" width="104" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">48</font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="120" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="104" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td></tr><tr><td bgcolor="#215867" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Base de Solución</b></font></td><td bgcolor="#215867" width="120" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#FFFFFF"><b>Resultado</b></font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="104" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">.FORMULA</font></td><td bgcolor="#FFFFFF" width="120" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">FALLA</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="104" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td></tr><tr><td bgcolor="#FFFFFF" width="147" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">.FORMULAR1C1</font></td><td bgcolor="#FFFFFF" width="120" height="25" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000">FUNCIONA</font></td><td bgcolor="#FFFFFF" width="69" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td><td bgcolor="#FFFFFF" width="104" height="25" align="right" valign="bottom" style="white-space: nowrap"><font face="Tahoma" size="2" color="#000000"></font></td></tr></table>
Entonces ¿qué será una solución que sobrevive ambos? No queremos andar busque que busque cada línea que hace una fórmula si hay centenares o miles de líneas de código. <o></o>
La solución es hacemos una enumeración de la posición de las columnas y usamos R1C1.<o></o>
Solución original (tres columnas)

```
Private Enum me_Columnas
    colNumeroArticulo = 1   '// by default first item is a 0, so need to redefine
    colPrecio
    colInventario
End Enum
Sub InsertarValorInvent_Enumerated()
    Dim rngCurr As Excel.Range, rngTarget As Excel.Range, _
        f As String, lngTargCol As Long
    '// para ser más sencilla usamos la hoja activa
    Set rngCurr = Range("A1").CurrentRegion
    With rngCurr
        Set rngTarget = .Offset(, .Columns.Count).Resize(1, 1)
        .Range("A1").Copy
    End With
    With rngTarget
        .PasteSpecial xlPasteFormats
        .Value = "Valor Invent"
        Set rngTarget = .Offset(1).Resize(rngCurr.Rows.Count - 1, 1)
    End With
    Let lngTargCol = rngTarget.Column
    Let f = "=RC[" & me_Columnas.colPrecio - lngTargCol _
          & "]*RC[" & me_Columnas.colInventario - lngTargCol & "]"
    With rngTarget
        '// using .FormulaR1C1
        .FormulaR1C1 = f
        .NumberFormat = "#,000"
        .EntireColumn.ColumnWidth = 16
    End With
End Sub
```
Si meten la nueva en B, editamos las enumeraciones así

```
Private Enum me_Columnas
  colNumeroArticulo = 1   '// by default first item is a 0, so need to redefine
  colNueva
  colPrecio
  colInventario
End Enum
```
Y si la meten en D, editamos así.

```
Private Enum me_Columnas
  colNumeroArticulo = 1   '// by default first item is a 0, so need to redefine
  colPrecio
  colInventario
  colNueva
End Enum
```
En ambos casos solo tenemos que editar las enumeraciones en la cabeza del módulo y ya, finito. *No tenemos que editar una sola letra de la rutina que escribe la fórmula.*


----------

