Originalmente publicado por
RAGATACK
ok, gracias por todo, entonces supongamos que quiero hacer un programa que al introducir datos estos se situen sobre una celda de excel y me devuelva datos calculados de la misma hoja y que me devuelva los valores de la celda de resultado y generar un archivo con esos datos y abrir el google earth, eso seria viable? Ya me he bajado el visual basic para empezar, gracias
Es que en las funciones que me has puesto no entiendo muy bien si puedo hacerlo todo
Este sirve para meter datos???
objExcel.Range("A1") = "ESCRIBO ALGO EN LA CELDA A1"
y para obtenerlos?
Gracias por al ayuda
Bueno empiezo desde el comienzo, primer lo que pedis, si se puede.
Supongamos que yo pongo 2 valores en las celdas A2 y B2 y el resultado de la suma de ambos se muestra en D2, es decir D2 contiene "=A2+B2"
Mientras cambie A2 y B2, me cambia el resultado.
Asi como muestra esta imagen
Ahroa vamos a Visual basic.
Paso 1: PROYECTO ---> REFERENCIAS....
Paso2: Buscamos "Microsoft Excel XX.0 Object Library".
Luego en el formulario ponemos 2 TextBox y 1 boton
Text1 y Text2, junto a Command1 y al command1, le cambiamos el "caption" y le ponemos "calcular"
asi:
Luego Haces doble Click, al Boton Command1
Y te aprece este menu
Ahora tenes que escribir el siguiente codigo
Cdigo:
Dim objExcel As Excel.Application
Set objExcel = New Excel.Application
objExcel.Visible = True
objExcel.DisplayAlerts = False
objExcel.Workbooks.Add App.Path & "\Libro1.xls"
objExcel.Sheets("Hoja1").Select
objExcel.Range("A2") = Text1.Text
objExcel.Range("B2") = Text2.Text
Y te queda asi:
Luego pones "guardar proyecto como...." .. Asi:
Y lo guardas en el escritorio en alguna carpeta, yo lo voy a guardar en la carpeta "PROYECTO EXCEL"
Luego EN LA MISMA CARPETA pegas el EXCEL que tenia las tablas: Por las dudas igualmente yo te subo el proyecto y el Excel
Luego de eso Apretas F5
Y en el los Cuadros donde dice "text1" y "text2", escribis "3 y 6" por ejemplo y apretas calcular.
Ahora si lo queres hacer algo Mas complejo, es decir "OBTENER EL RESULTADO".
Es facil
Agrega un Textbox mas, que sea Text3.
Y el codigo del boton agregale esto
objExcel.Range("A2")
Para que el codigo te quede asi.
Cdigo:
Dim objExcel As Excel.Application
Set objExcel = New Excel.Application
objExcel.Visible = True
objExcel.DisplayAlerts = False
objExcel.Workbooks.Add App.Path & "\Libro1.xls"
objExcel.Sheets("Hoja1").Select
objExcel.Range("A2") = Text1.Text
objExcel.Range("B2") = Text2.Text
Text3.Text = objExcel.Range("D2") Como veras, las lineas
objExcel.Range("D2") = Text3.Text
Envian, datos, es decir EXCEL, recibe el Valor de la variable,
A al Izquierda es el receptor del valor y a la derecha es el Entregador del valor o dato.
Bueno, si los invertimos obtendriamos el efecto contrario no?.
Entones si yo pongo
Text3.Text = objExcel.Range("D2")
El receptor es el de la Izquierda y el Entregador de Datos es el de la derecha.
por lo que si en la celda "D2" esta "3333333"
Entonces Text3 va a Cargarse con el valor "3333333"
Yo te dejo el ejemplo ya hecho, para que lo revices por si no te sale.
Aca va x 4shared:
http://www.4shared.com/file/14414083...CTO_EXCEL.html
O si no, lo dejo adjunto en el foro tambien.
Dejo ambas opciones para que sea mas comodo para vos y puedas elejir
PD: Si queres que las cosas se "hagan" en excel y no se "vean" podes poner "FALSE" al "Visiable"
Cdigo:
Dim objExcel As Excel.Application
Set objExcel = New Excel.Application
objExcel.Visible = False
objExcel.DisplayAlerts = False
objExcel.Workbooks.Add App.Path & "\Libro1.xls"
objExcel.Sheets("Hoja1").Select
objExcel.Range("A2") = Text1.Text
objExcel.Range("B2") = Text2.Text
Text3.Text = objExcel.Range("D2")