Mostrando entradas con la etiqueta MACRO. Mostrar todas las entradas
Mostrando entradas con la etiqueta MACRO. Mostrar todas las entradas

martes, 2 de septiembre de 2014

Extraer Datos de una BD MYSQL desde EXCEL 2010


En office te tiene le das clic a la pestaña de datos, luego desde ahí te vas a de OTRAS FUENTES. 


En otras fuentes tu le das clic a Desde MICROSOFT QUERY , Después de esto


Te vas a la pestaña de elegir origen de datos, y le das nuevo origen de datos

Le pones el nombre a tu conexión y seleccionas el driver de mysql ODBC 5.1 driver
Enseguida te sale el conector ODBC, y agregar tu IP, el puerto 3306 debe estar abierto.
El usuario y el password y debe aparecer la base de datos. Le das test para checar que realmente marque una conexión exitosa.
Luego una vez que seleccionas una tabla en el asistente le das aceptar y te la guarda.
Vuelves a donde mismo pero ya generaste tu conexión y le das clic, te vuelve a pedir el usuario y la contraseña y la metes y luego te manda a generar la consulta.

jueves, 10 de julio de 2014

Macro Exporta de excel a Outlook Calendario

Este pequeño macro genera una varias tareas de Excel a el calendario de Outlook.
para esto tendremos que agregar la referencia al api de Outlook. en herramientas/referencia con esto podremos trabajar con Outlook.apliccation y todos sus objetos.




Sub CREARTAREA()
   Dim ol As Outlook.Application
  ' Dim NewTask As Outlook.TaskItem/* Objeto de lista de tarea*/
   Dim newtask As Outlook.AppointmentItem ' objeto de tarea en calendario
   Dim i As Integer ' variable contador para ciclo
   ' Set the Application object.
   Set ol = New Outlook.Application ' Crea un set de outlook
   ' Create a new standard task.
   ' Display the new task form so the user can fill it out.
   For i = 10 To 1 Step -1 ' Determinamos un ciclo para llenar nuestro calendario con tareas de excel
    Set newtask = ol.CreateItem(olAppointmentItem) ' Crea el objeto del calendario
      newtask.Subject = Sheets(1).Cells(i, "A").Value 'Agregamos la linea que contiene el asunto de tarea
      newtask.Body = "esto es una prueba" ' Cuerpo de la tarea
      'newtask.Display (evento que funciona para que despliegue el formato de calendario, o tarea)
      newtask.Start = Sheets(1).Cells(i, "B").Value ' Agrega campo fecha con hora del evento en calendario
      'newtask.End = Sheets(1).Cells(i, "B").Value
      newtask.Duration = 60 ' duracion del evento en minutos
      'newtask.End = Now (tiempo de terminacion del evento)
      newtask.Save 'evento que guarda la tarea
      newtask.ClearRecurrencePattern
    Set newtask = Nothing 'Vaciamos el objeto para que se pueda volver a utilizar
  Next i 'Volvemos al ciclo
End Sub

Espero que les pueda servir de ayuda.

miércoles, 9 de julio de 2014

Mi incursion en macros macro EXCEL a SAP B1 Anticipos

Jamás me había interesado esto, pensé siempre que era mejor una aplicación desde cualquier lenguaje, sin embargo el poco tiempo y la necesidad me han hecho ver las macros como una buena herramienta para mitigar ciertas tareas repetitivas y tediosas.

para empezar genere esta pequeña macro para poder enlazar a objetos de SAP. necesitaba cerrar anticipos de manera automática por ser un número grande.

para esto primero agregar herramientas/referencia dentro de vb en la pestaña de programador en Excel.



agregamos este código, explico en cada renglón por que el objeto o la variable.

Sub SAP()
'---Datos SAP...
Dim oCompany As SAPbobsCOM.Company 'objeto de compañías de sapbobscom
Dim lRetCode, ErrorCode As Long 'variables para errores
Dim ErrorMessage As String 'mensaje de error variable
Dim Retval As Long 'variable de error regresado por sap
Dim vItem As SAPbobsCOM.Documents 'objeto de documento en SAP
Dim numdocentry As Long 'variable para mover el registro del objeto
' Importar
  Set oCompany = New SAPbobsCOM.Company 'asignas al objeto para manejar la bd.
    oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2005 'tipo de base de datos,
                  'hay diferentes dependiendo del manejador de la bd
    oCompany.DbUserName = "Tudbuser"
    oCompany.DbPassword = "tupasswordsql"
    oCompany.Server = "127.0.0.1"
    oCompany.CompanyDB = "basededatosSAP"
    oCompany.UserName = "userSAP"
    oCompany.Password = "passSAP"
    oCompany.UseTrusted = False
    lRetCode = oCompany.Connect()
    Set vItem = oCompany.GetBusinessObject(oDownPayments)
    Row = 2
    Do While Sheets(1).Cells(Row, "A") <> ""
        numdocentry = Sheets(1).Cells(Row, "A")
        vItem.GetByKey (numdocentry)
        'vItem.NumAtCard = Sheets(7).Cells(Row, "C")
        vItem.Comments = "anticipo cancelado macro"
        vItem.Update ' El objeto se actualiza puede ser create, delete, update
        Retval = vItem.Cancel
        Row = Row + 1
    Loop
    oCompany.Disconnect 'desconectar compañía
    MsgBox "Exportado "
'Importar a SAP
MsgBox "Exportado ..!"
End Sub



tengo poco tiempo pero esto lo posteo a ver si puede servir a alguien, cabe mencionar que la DI API es de la versión 2007.