• Domingo 22 de Diciembre de 2024, 12:18

Autor Tema:  No Se Me Ejecuta Macro Desde Vb  (Leído 1977 veces)

sirespi

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
No Se Me Ejecuta Macro Desde Vb
« en: Lunes 29 de Agosto de 2005, 16:08 »
0
Muy buenas. Acabo de ponerme con las macros de Excel, ya que necisito ejecutar una desde VB cuando desde VB tambien abro un fichero xls. HE mirado por el foro y he hecho lo que dice la gente, es decir, grabar la macro y luego ver el codigo, asi es mas facil. Sin embargo me da error. Os comento lo que hago:

Public e As Object

Private Sub Command1_Click()
Set e = CreateObject("Excel.Application")
e.Visible = True
e.Workbooks.Open FileName:="D:\prueba2.xls"
Macro2


Sub Macro2()
    e.Range("A2:B3").Select
    e.Charts.Add
    e.ActiveChart.ChartType = xlXYScatterLinesNoMarkers
    e.ActiveChart.SetSourceData Source:=Sheets("Hoja1").Range("A2:B3"), PlotBy:= _
        xlRows
    e.ActiveChart.Location Where:=xlLocationAsObject, Name:="Hoja1"
    With e.ActiveChart
        .HasTitle = False
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
End Sub

Como veis lo unico que hago es crear un objeto excel , abrir un fichero que ya tiene unos datos y aplicar la macro que he realizado para dibujar una grafica con esos datos
Sin embargo me da error de procedimiento no conocido y me marca la palabra Sheets. Alguno me puede echar un manilla???

Muchas gracias de antemano

DrakerDG

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
    • http://drakerdg.xbot.es/wordpress/
Re: No Se Me Ejecuta Macro Desde Vb
« Respuesta #1 en: Jueves 1 de Septiembre de 2005, 14:03 »
0
:comp: Generé una aplicación en la cual modifiqué el código que muestras en tu post.

El codigo abre un archivo excel (icluido) y al presionar el boton generar automaticamente crea diferentes versiones de gráficos de los datos en la hoja 1.

Las linea de comando que estan en verde (originales de tu código), están anuladas porque me tiran diferentes errores, no logré saber porqué.

 :suerte:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Saludos desde Guatemala, C. A.
Electrobotics

sirespi

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: No Se Me Ejecuta Macro Desde Vb
« Respuesta #2 en: Jueves 1 de Septiembre de 2005, 14:13 »
0
Muchas gracias por la respuesta.

Ya logre saber cual era el fallo. Ahora puedo crear desde VB cualquier hoja de excel sin necesidad de irme al propio excel. Me costo un poco pero una vez cogido el truco, es muy facil.

Te pongo el codigo bueno por si te interesa

Sub Macro2()
e.Range("A2:B3").Select
e.Charts.Add
e.ActiveChart.ChartType = 75
e.ActiveChart.SetSourceData Source:=e.Sheets("Hoja1").Range("A2:B3"), PlotBy:= _
xlRows
e.ActiveChart.Location Where:=xlLocationAsObject, Name:="Hoja1"
With e.ActiveChart
.HasTitle = False
.Axes(1, 1).HasTitle = False
.Axes(1, !).HasTitle = False
End With
End Sub

Lo que fallaba era que la propiedad Sheetes no lo reconocia porque no le habia asignado mi objeto excel, e.
Adema luego me dio unos errores cuando hay parametros qeu pone "xlLoQueSea". Me mire un moton de cosas en el codigo de VBA de Excel y descubri que eran constantes, asi que lo que hice fue cambiar esas variables por sus valores numericos y todo funcionando.
Ademas ya pueod hacer cualquier cosa, intercambiar hoojas, copy-paste, graficas, formulas colores, etc etc.
Impresionante la potencia que tiene VB, cada dia me asombro mas.

Muchas gracias por tu respuesta

DrakerDG

  • Miembro activo
  • **
  • Mensajes: 72
    • Ver Perfil
    • http://drakerdg.xbot.es/wordpress/
Re: No Se Me Ejecuta Macro Desde Vb
« Respuesta #3 en: Jueves 1 de Septiembre de 2005, 20:05 »
0
:comp: Gracias por la información de vuelta.

Es importante que todos los usuarios del foro que sea, tengamos esta costumbre, pues la retroalimentación de un tema, solidifica los conocimientos de todos.  

Sigamos este ejemplo. :blink:
Saludos desde Guatemala, C. A.
Electrobotics