hola, ???
recapitulando un poco en relacion con tus comentarios en las consultas, expones lo siguiente:
1) ... como puedo meter formulas de Excel en Visual Basic
... necesito las formulas de BUSCARV, SUMA.SI, SI... y algunas otras
... pero no se como ponerlas en Visual !
2) ... escribir la formula en visual.... y que el resultado lo mande a una celda en Excel
3) ... Range("C5") = Application.WorksheetFunction.VLookup(B5, cliente, 11, 0) = True
4) ... La variable "cliente" es una "matriz" que tengo en excel... con el nombre de todos los clientes... que va de A5:AA358
a) si quieres que por codigo se 'deposite' una formula con funciones de hojas de calculo en celdas, tienes [al menos] dos opciones:
a) usar la propiedad .Formula = "=aqui escribes la formula con las funciones EN ingles y la coma como separador de argumentos...'
b) usar la propiedad .FormulaLocal = "=aqui escribes la formula con las funciones EN el idioma donde se vaya a ejecutar tu macro Y...
-> conociendo [+/- exactamente] el separador de argumentos del excel donde se ejecute tu macro
-> ya sea por idioma o configuracion regional <= OJO
ejemplo con las funciones en ingles:
-> Range("c5").Formula = "=vlookup(b5,cliente,11,0)"
ejemplo con funciones en castellano y punto_y_coma como separador de argumentos:
-> Range("c5").FormulaLocal = "=buscarv(b5;cliente;11;0)"
c) o puedes usar la grabadora de macros, mientras escribes la formula 'a mano', y revisas despues el codigo que se ha generado :))
b) si lo que necesitas es 'usar' las funciones de excel desde vba para 'depositar' SOLO EL RESULTADO en celdas de hojas de calculo... -?-
[la propiedad WorksheetFunction te mostrara las funciones en ingles y como 'argumentos' deberas pasar los objetos 'completos'] ejemplo:
-> Range("c5") = Application.WorksheetFunction.VLookup(Range("b5"), Range("cliente"), 11, False)
o... si el rango 'cliente' [A5:AA358] se encuentra en una hoja distinta de la celda donde se depositara el rasultado...
-> Range("c5") = Application.WorksheetFunction.VLookup(Range("b5"), Worksheets("otra hoja").Range("cliente"), 11, False)
si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.