Optimizar Código

07/11/2006 - 02:10 por fernanda.peruana | Informe spam
Hola, Buenas Noches, quisiera hacer lo siguiente en una macro:

En una tabla tengo en la fila 12 la siguiente fórmula:

=SI(C11=$D$3,$E$3,"")
=SI(D11=$D$3,$E$3,"")
=SI(E11=$D$3,$E$3,"")
=SI(F11=$D$3,$E$3,"")
=SI(G11=$D$3,$E$3,"")
=SI(H11=$D$3,$E$3,"")

En esa fórmula la única variable es la columna, que cambia a lo largo
de la fila, es decir, puse la fórmula =SI(C11=$D$3,$E$3,"") en la
celda C12 y la copie a lo largo hasta la columna AA12

Intenté poner el siguiente código, para hacer precisamente lo
anterior:

Sub validar()
If Hoja1.Range("C11") = Hoja1.Range("D3") Then
Hoja1.Range("C12").Value = Hoja1.Range("E3")
End If
If Hoja1.Range("D11") = Hoja1.Range("D3") Then
Hoja1.Range("D12").Value = Hoja1.Range("E3")
End If
If Hoja1.Range("E11") = Hoja1.Range("D3") Then
Hoja1.Range("E12").Value = Hoja1.Range("E3")
End If
If Hoja1.Range("F11") = Hoja1.Range("D3") Then
Hoja1.Range("F12").Value = Hoja1.Range("E3")
End If
End Sub

El problema es, que si son 50 columnas, tendría que escribir en el
código 50 veces lo mismo, variando el código en el rango a validar.

Cómo realizo el código para que haga lo que les explico, optimizar el
código.

Espero haberme explicado correctamente y que me puedan apoyar con sus
amables respuestas.

Preguntas similare

Leer las respuestas

#1 Tux
07/11/2006 - 12:27 | Informe spam
escribió:
Hola, Buenas Noches, quisiera hacer lo siguiente en una macro:

En una tabla tengo en la fila 12 la siguiente fórmula:

=SI(C11=$D$3,$E$3,"")
=SI(D11=$D$3,$E$3,"")
=SI(E11=$D$3,$E$3,"")
=SI(F11=$D$3,$E$3,"")
=SI(G11=$D$3,$E$3,"")
=SI(H11=$D$3,$E$3,"")

En esa fórmula la única variable es la columna, que cambia a lo largo
de la fila, es decir, puse la fórmula =SI(C11=$D$3,$E$3,"") en la
celda C12 y la copie a lo largo hasta la columna AA12

Intenté poner el siguiente código, para hacer precisamente lo
anterior:

Sub validar()
If Hoja1.Range("C11") = Hoja1.Range("D3") Then
Hoja1.Range("C12").Value = Hoja1.Range("E3")
End If
If Hoja1.Range("D11") = Hoja1.Range("D3") Then
Hoja1.Range("D12").Value = Hoja1.Range("E3")
End If
If Hoja1.Range("E11") = Hoja1.Range("D3") Then
Hoja1.Range("E12").Value = Hoja1.Range("E3")
End If
If Hoja1.Range("F11") = Hoja1.Range("D3") Then
Hoja1.Range("F12").Value = Hoja1.Range("E3")
End If
End Sub

El problema es, que si son 50 columnas, tendría que escribir en el
código 50 veces lo mismo, variando el código en el rango a validar.

Cómo realizo el código para que haga lo que les explico, optimizar el
código.

Espero haberme explicado correctamente y que me puedan apoyar con sus
amables respuestas.




Hola Fernanda :-)

Prueba con este codigo:

Sub Relleno_Formulas_Columnas()

'FormulaR1C1 equivale a =SI(C11=$D$3,$E$3,"")

With Hoja1

Range("D12").FormulaR1C1 = "=IF(R[-1]C[-1]=R3C4,R3C5,"""")"

Range("D12").AutoFill Destination:=Range("D12:AA12")

End With


End Sub

Si alguna duda nos comentas ok? :-)


¡Un SAludo!:-)

www.fermu.com
www.zorval.es
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida