Estás en: Inicio >> Foros >> Informtica >> Programacin
Programacin /

Visual basic Excel referencia celdas

Participa en el tema Visual basic Excel referencia celdas en el foro Programacin.
Buenas, tengo unas dudas, el caso es que me gustaria en estas lineas de codigo ...

Buscar en este tema:
 
  •  
    #1 Visual basic Excel referencia celdas
    Buenas, tengo unas dudas, el caso es que me gustaria en estas lineas de codigo

    Open "C:\Ubicacion.kml" For Output As #1

    Call Shell("C:\Archivos de programa\Google\Google Earth\client\googleearth.exe C:\Ubicacion.kml", vbMaximizedFocus)

    Me gustaria poder cambiar la ruta desde una celda. He probado poniendo por ejemplo Open "Hoja1.Cells("A1")" For Output As #1 pero me da error, tmabien me gustaria hacerlo en la segunda linea de codigo para cambiar la ruta del programa y del archivo a abrir en cuestion. Gracias
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: Visual basic Excel referencia celdas

    Bueno antes que nada, visual basic trabaja con Excel directamente no tenes que abrir el archivo de esa manera.
    Eso es para archivos Planos.
    Ahora bien vamos a excel directamente.

    Como? Con los siguientes pasos:

    N1 : Abri el Visual Basic 6
    Anda a PROYECTO -> Referencias ....




    N2 - Nos desplega un menu para referencias, es decir obtener soporte de programas ya instalados en la PC.

    DEBES TENER INSTALADO EL OFFICE EN TU PC PARA QUE FUNCIONE.

    Cuando haces el paso N1 te aparece este menu
    .

    En ese menu busca "Microsoft Excel XX.0 Object Library".



    IMPORTANTE: Te escribo "Microsoft Excel XX.0 Objetct Library". con el XX; porque 11.0 es el Office 2003.
    El Office 2005 Figura como 11.5 y el 2007 figura como 12.0

    Iguamente eso no es imporatante, con la version que sea lo que vamos a hacer funciona.

    Bueno ahora que lo encontraste "Checkealo" y pone Aceptar.

    Ahora vamos a poder usar Excel Directamente.

    Para tu primera prueba con excel proba con esto.


    Cdigo:
    Private Sub Form_Load()
        Dim objExcel As Excel.Application 'Denifis el tipo de datos
    
        objExcel.DisplayAlerts = False 'False para que no me tire catelitos, como "Desea guardar antes de cerrar? y cosas asi
    
        Set objExcel = New Excel.Application ' Creas una hoja en la variable junto a sus propiedades
    
        objExcel.Visible = True 'True para ver la hoja, false para no verla (aunque la podes seguir modificando e imprimirla, es como un  .Visible = False y Enabled = True, no se v pero sigue activo
    
        objExcel.Workbooks.Open (App.Path & "\Libro.xls") 'Desde donde lo abris o pones Workbooks.Add()  para uno nuevo
    
        objExcel.Sheets("Hoja1").Select 'Seleccionas la hoja o podes poner tambien .Sheets(1)
    
        objExcel.Range("A1") = "ESCRIBO ALGO EN LA CELDA A1" 'Escribo en la Celda A1
    
        objExcel.ActiveWindow.SelectedSheets.PrintOut Copies:=1 'Imprimo por la Impresora y imprimo 1 sola (copies = 1 )
    
        objExcel.ActiveWorkbook.Close False 'Como termine, cierro el libro
        'Como puse objExcel.DisplayAlerts = False no me va a molestar con cartenlitos ;)
    
        objExcel.Quit 'Cierro Excel (porque antes cerre el LIBRO y no Excel 
    
        Set objExcel = Nothing 'Vacio el objeto para que no me quede gastando espacio en la memoria 
    
    End Function 
    Si tenes mas dudas, avisame.
    Editado por -HeavenMight- - 26.10.2009 09:50 hs.
    Me gusta este mensaje
  • #3 Re: Visual basic Excel referencia celdas

    Gracias por responder pero me gustaria hacerlo sobre excel ya que voy a coger cada dos por tres datos que hay en las celdas, y tampoco tengo instalado el visual basic 6. Supongo que con lo que me has puesto se puede acceder a excel sin ningun problema, pero resulta mas sencillo hacerlo sobre la misma hoja,no? Aunque a lomejor te limitar algunas cosas, tampoco lo s. Me gustara introducir variables dentro de las funciones de open y call shell como he explicado antes si puede ser. Pero gracias por responder e intentar ayudarme. Un saludo

    Prob con
    Dim nombre As String
    nombre = Hoja1.Cells(17, 4)
    Open nombre For Output As #1

    y en la celda hepuesto una ruta como c:\a.txt y con comillas y no hay forma incluso utilizando la funcion espacios por si acaso y no hay manera. gracias
    Me gusta este mensaje
  • #4 Re: Visual basic Excel referencia celdas

    Bueno sin el IDE se me complica.
    Sin embargo te digo que eso que intentas hacer no se puede.

    Si intentas abrir un block de notas veras algo asi:

    ࡱ > \ p mbertiaux B a = œ = hZ K-!8 X@ " 1  ^A r i a l 1  ^A r i a l 1  ^A r i a l 1  ^A r i a l "$"\ #,##0;"$"\ \-#,##0! "$"\ #,##0;[Red]"$"\ \-#,##0" "$"\ #,##0.00;"$"\ \-#,##0.00' " "$"\ #,##0.00;[Red]"$"\ \-#,##0.00= * 8 _ "$"\ * #,##0_ ;_ "$"\ * \-#,##0_ ;_ "$"\ * "-"_ ;_ @_ . ) ) _ * #,##0_ ;_ * \-#,##0_ ;_ * "-"_ ;_ @_ E , @ _ "$"\ * #,##0.00_ ;_ "$"\ * \-#,##0.00_ ;_ "$"\ * "-"??_ ;_ @_ 6 + 1 _ * #,##0.00_ ;_ * \-#,##0.00_ ;_ * "-"??_ ;_ @_ + ) , * “ €“ €“ €“ €“ € “ €` …
    Hoja1…
    Hoja2Œ " 6 " c c
    ]
    d MbP?_ * + ‚ € % ƒ „ " U
    > @ 7
    d
    d MbP?_ * + ‚ € % ƒ „ " U
    > @ 7
    …ŸOh‘ +'0 @ H \ p ˆ
    ” Microsoft Excel @ †… W@ :‰ W œ.“— +,0 P X d l t | „
    Œ Hoja1 Hoja2 Hojas de clculo

    R o o t E n t r y F W o r k b o o k S u m m a r y I n f o r m a t i o n ( D o c u m e n t S u m m a r y I n f o r m a t i o n 8


    Que no tiene sentido x que esta encryptado.

    No podes tomar instrucciones de una linea que esta encryptada.
    Por eso el metodo Open es para archivos planos.
    Me gusta este mensaje
  • #5 Re: Visual basic Excel referencia celdas

    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
    Me gusta este mensaje
  • #6 Re: Visual basic Excel referencia celdas

    Originalmente publicado por RAGATACK Ver mensaje
    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") 
    Archivos adjuntos
    Tipo de archivo: rar PROYECTO EXCEL.rar (8.5 KB, 6 vistas)
    Editado por -HeavenMight- - 27.10.2009 15:26 hs.
    Me gusta este mensaje
  • #7 Re: Visual basic Excel referencia celdas

    Muchas gracias, esta noche o maana lo probar y te comentare. Muchisimas gracias por las capturas de pantalla y por facilitarmelo tanto. Cuando lo termine te lo har saber y si necesito algo de ayuda volvere!!! Gracias
    Editado por RAGATACK - 27.10.2009 17:39 hs.
    Me gusta este mensaje
  • #8 Re: Visual basic Excel referencia celdas

    Funcion! Aunque solamente ne el visual basic 6 pero en el visual studio 2005 al convertirlo me tira muchos errores, me convierte las instrucciones pero da error al acceder al excel. Pero por fin me apae con visual basic 6.0. Gracias
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informtica >> Programacin


Estadísticas del tema
  • 7 RESPUESTAS
  • 1752 VISTAS
  • 2 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB