Jump to content

error de compilacion en macro a la hora de exportar datos web a excel!!!!


Recommended Posts

Necesito ayuda con esta macro. Estoy empezando en esto de la programacion vba y no estoy muy ducho.

No consigo resolver el error que me da el mensaje.

Estoy trabajando con una hoja de excel con la finalidad de exportar datos de una web de empleo americana a excel categorizando ciertas informaciones en dos columnas.

La hoja tiene dos módulos. Al ejecutar la macro aparece un mensaje en relación con el modulo 1 donde se dice "error de compilación el procedimiento externo no es valido ". A continuación se subraya en el código la línea Columns("A:D").Select.

Aqui adjunto el código de módulo 1

-------------------------

' Macro1 Macro

' formatting imported data

'

'

Columns("A:D").Select

Selection.Columns.AutoFit

With Selection

.VertilcalAligment = xlTop

.Orientation = 0

.AddIndent = False

.IndentLevel = 0

.ShrinkToFit = False

.ReadingOrder = xlContext

End With

Range("D1").Selection

Columns("D:D").ColumnWidth = 50

Columns("A:D").Select

Selection.Rows.AutoFit

End Sub

---------------------------

y aquí el código del módulo 2

---------------------------------------------------------

Sub test()

Dim eROW As Long

Dim ELE As Object

Set STH = Sheets("SHEET1")

RowCount = 1

STH.Range("A" & RowCount) = "TITLE"

STH.Range("B" & RowCount) = "COMPANY"

STH.Range("C" & RowCount) = "LOCATION"

STH.Range("D" & RowCount) = "DESCRIPTION"

eROW = SHEET1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

Set OBJIE = CreateObject("INTERNETEXPLORER.APPLICATION")

MYJOBTYPE = InputBox("ENTER TYPE OF JOB EG. SALES, ADMINISTRATION")

BOX ("ENTER ZIPCODE OF AREA WHERE YOU WISH TO WORK")

With OBJIE

.Visible = True

.navigate "http://www.jobs.com/"

Do While .busy Or _

.READYSTATE <> 4

DoEvents

Loop

Set zipcode = .document.getELementsbyName("where")

zipcode.Item(0).Value.myzip

.document.getelementbyid("jobsbutton").Click

Do While .busy Or _

.READYSTATE <> 4

DoEvents

Loop

For Each ELE In .document.all

Select Case ELE.classname

Case "result"

RowCount = RowCount + 1

Case "title"

sht.Range("A" & RowCount) = ELE.INNERTEXT

Case "COMPANY"

sht.Range("B" & RowCount) = ELE.INNERTEXT

Case "LOCATION"

sht.Range("C" & RowCount) = ELE.INNERTEXT

Case "DESCRIPTION"

sht.Range("D" & RowCount) = ELE.INNERTEXT

End Select

Next ELE

End With

MACRO1

Set OBJIE = Nothing

End Sub

---------------------------

¿Alguien puede ayudarme a arreglar la macro?

Gracias

pd archivo adjunto con hoja excel conteniendo los dos módulos

exportador.zip

Link to comment
Share on other sites

amigo, el primer procedimiento le hace falta su "línea de encabezado" (no se realmente como llamarla jejejeje), es la línea que indica que comienza un precedimiento.

agrega esto al principo del modulo 1

Sub Macro1

y listo, ya deberia funcionar (Macro1 lo puedes cambiar por el nombre que quieras que tenga tu procedimiento), suerte

Link to comment
Share on other sites

Buenos días,

Seguí tu consejo pero a la hora de ejecutar el módulo 1 me pone

"se ha producido un error 438 en tiempo de ejecución" El objeto no admite esta propiedad o método"

Le doy a depurar y la linea .VertilcalAligment = xlTop aparece marcada en amarillo.

Cuando intento ejecutar el módulo 2 me aparece el mismo mensaje y me remite a la línea anterior.

No sé a qué puede deberse???

Puedes/podeís ayudarme???

Gracias

Borja

pd adjunto el mismo archivo ya que en el anterior había algunas líneas con error de código. El nuevo archivo se llama star

star.zip

Link to comment
Share on other sites

Amigo, en tu codigo tienes

.VertilcalAligment = xlTop

y es VerticalAlignment

(revisa que no está bien escrita).

un consejo, cuando te suceda algo, intenta buscar con la ayuda del propio excel (es muy buena), tambien puedes escribir por ejemplo:

range(). (y cuando coloques el punto veras que te sale una venta con todas las propiedades y/o eventos pertenecientes al objeto range, puedes verificar alli si alguna está mal escrita o si hay algo que estes buscando), suerte

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • 58 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Files

  • Download Statistics

    • Files
      166
    • Comments
      89
    • Reviews
      25

    Latest File
    By pegones1

    1    0

  • Crear macros Excel

  • Posts

    • Buenos días a todos; -Con la macro que adjunto paso el valor formateado con dos decimales a la celda pero veo que si voy a la barra de fórmulas me siguen apareciendo más de dos decimales.  Hay alguna otra solución? Me interesa que solo sean dos decimales porque después estos datos los paso a Access y  me está cargando todos los decimales. Saludos  Formato.xlsm
    • Hola, tengo una consulta que no se resolver con listas desplegables y sin macros. El caso sería que cuando estemos en la hoja SUBFAMILIA si por ejemplo nos situamos en la fila 3 columna A y desplegamos la lista desplegable y elegimos 0102.BARRAS PERFORADAS, que automáticamente me llene las celdas correspondientes de Campo1, Campo2, Campo3…….. con los datos que se encuentran en la hoja CAMPOS columna C correspondientes a 0102.BARRAS PERFORADAS en este caso son 13 pero pueden llegar hasta 20. En el caso de añadir nuevas subfamilias en esta hoja previa creación de sus campos correspondientes en la hoja Campos tendría que hacer lo mismo, gracias MUESTRA.rar
    • Prueba así: '----------------------------------------- APIS ELIMINAR BARRA TITULO FORMULARIO Private Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare PtrSafe Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare PtrSafe Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare PtrSafe Function DrawMenuBar Lib "User32" (ByVal hwnd As Long) As Long Private Sub UserForm_Initialize() 'ELIMINAR BARRA TITULO FORMULARIO Dim lStyle As Long, hMenu As Long, mhWndForm As Long mhWndForm = FindWindow("ThunderDFrame", Me.Caption) lStyle = GetWindowLong(mhWndForm, -16) lStyle = lStyle And Not &HC00000 SetWindowLong mhWndForm, -16, lStyle DrawMenuBar mhWndForm '---------------------------------------------------- End Sub  
    • Hola buenas a todos. Hace unos cuantos días estoy intentando trabajar con datos filtrados porque necesito que los datos filtrados en la columna A (No. Pre Factura) quisiera que se concatenaran, he probado varias formas, pero por desconocimiento no he logrado nada, cuando lo intento me concatena todos los datos estén visibles o no. Lo mismo con las columnas G, I, K, M, O, Q (COD1, COD2, COD3, COD4, COD5, COD6) que busco la forma de unir todos los códigos iguales y que me sume sus respectivas cantidades probando con tablas dinámicas, con la función subtotales, pero igual no lo he logrado. Les agradecería si me ayudaran a resolver mi problema. Gracias Dejo aquí el documento mi problema está en la Hoja 2. trabajo.xlsm
    • Sí, sí puedes. Solo selecciona el título en el gráfico y con él seleccionado en la barra pon "=" e indicas la celda a la que quieres hacer referencia.
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy