actualizar excel con datos de sap automaticamente

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • yanez_surot
    Junior Member
    • may
    • 3

    #1

    actualizar excel con datos de sap automaticamente

    Hola a todos,
    Les cuento que soy novato en sap, pero me manejo mucho en programacion vb macros excel etc, mi duda es la siguiente:
    En el trabajo me pidieron que mediante alguna funcion en macros excel, trajera informacion de sap automaticamente una vez al dia, del las transacciones son FBL1N y SCIV.
    Existe alguna manera de conectar excel con sap para que me traiga estos datos automaticamente?.
    Pido por favor a alguien que me oriente un poco en este tema, y si tienen alguna documentacion sobre esto estaria muy agradecido.
    Saludos a todos.
  • aperfects
    Junior Member
    • jun
    • 1

    #2
    Alguien please que ayude a conectar excel y sap

    Alguien tiene el código vba mediante macros en excel conectar con el SAP, para obtener reportes... gracias por su ayuda ...

    Comentario

    • COLSEN
      Junior Member
      • jun
      • 3

      #3
      Te paso algo simple que esta en la web

      Sub GetCLientes()

      'Declaration

      Dim objBAPIControl As Object 'Function Control (Collective object)
      Dim sapConnection As Object 'Connection object
      Dim Total

      ' Assign.
      Set objBAPIControl = CreateObject("SAP.Functions")
      Set sapConnection = objBAPIControl.Connection

      'Logon with initial values Credenciales de conexcion

      sapConnection.Client = "111"
      sapConnection.User = "DESADM"
      sapConnection.Password = "xxxxx"
      sapConnection.SystemNumber = 0
      sapConnection.System = "DES"
      sapConnection.HostName = "serverxxx"
      sapConnection.Language = "ES"

      If sapConnection.logon(1, True) <> True Then
      MsgBox "No connection to R/3!"
      Exit Sub
      End If

      'Prepare output to the EXCEL worksheet

      Worksheets(2).Select
      Cells.Clear

      Set objTableSAP = objBAPIControl.Add("ZCLIENTES")

      'call the 1st BAPI to retrieve the list of clients'
      returnFunc = objTableSAP.Call

      If returnFunc = True Then
      Dim objTable As Object
      Set objTable = objTableSAP.Tables("ZCLIENTES")
      Total = objTable.RowCount

      ActiveSheet.Cells(1, 1) = "Cantidad :" & Total

      For i = 1 To Total

      ActiveSheet.Cells(2 + i, 1) = objTable.Cell(i, 1)
      ActiveSheet.Cells(2 + i, 2) = objTable.Cell(i, 2)
      ActiveSheet.Cells(2 + i, 3) = objTable.Cell(i, 3)
      ActiveSheet.Cells(2 + i, 4) = objTable.Cell(i, 4)
      ActiveSheet.Cells(2 + i, 5) = objTable.Cell(i, 5)
      ActiveSheet.Cells(2 + i, 6) = objTable.Cell(i, 6)
      ActiveSheet.Cells(2 + i, 7) = objTable.Cell(i, 7)

      Next i

      End If

      Columns("A:Z").EntireColumn.AutoFit

      'Close connection to R/3 !
      '
      objBAPIControl.Connection.logoff
      '
      'Release the objects to free storage space
      '
      Set sapConnection = Nothing
      Set functionCtrl = Nothing
      MsgBox "Program terminated!", 0, "Exit"
      End Sub

      Comentario

      • dzatan

        #4
        Que archivos .OCX debo registrar ya que me conecto con SAP desde una maquina virtual?

        deseo usar el CreateObject("SAP.Functions"), pero me salta el siguiente #error <El componente activeX no puede crear el objeto>

        Saludos
        y muchas gracias

        Comentario

        • mgcarcamo
          Junior Member
          • oct
          • 3

          #5
          Sap Gui

          Por lo que yo he visto, en donde se ejecute la macro (equipo) debe tener instalado el SAP GUI, y dados de alta los servidores a los que se requiere el acceso.

          Espero te funcione esta información.

          si alguien sabe como hacerlo si tener instalado el SAP GUI por favor compartalo.

          Comentario

          • Ana_M
            Junior Member
            • jun
            • 9

            #6
            actualizar excel con datos de sap automaticamente

            Hola!
            Y no es mejor crear el reporte directamente en sap y luego exportarlo a excel? Si son solamente datos de dos tablas con un QuickView lo tendrías que resolver!
            Sds,

            Comentario

            • AntonioCamejo
              Junior Member
              • may
              • 4

              #7
              Actualizar Excel sin escribir código

              Yo buscando en la web encontré un programa donde puedes preparar queries con tablas bajadas de SAP y luego los exporta a Excel. Desde el libro de Excel que se crea se pueden actualizar los queries sin necesidad de volver a abrir ese programa y se hace con solo darle a un botón.
              Los campos quedan bien formateados y no tienes que estarlos arreglando. Lo pueden conseguir en este sitio Web: http://www.fragajorge.com/sqlwebsite_1/default.aspx
              Cuando se lo instalas a un usuario puedes limitarle las tablas que puede usar.

              Comentario

              • PabloCanales
                Senior Member
                • may
                • 233

                #8
                Consulta

                Estimados; una consulta; cuándo te conectas al SAP a través del Excel implica en algo el usuario con el que entres? esto debido a que me connecto a SAP y me rescata información pero de otros centros y no desde donde estoy trabajando.


                Atte.
                Pablo

                Comentario

                • AntonioCamejo
                  Junior Member
                  • may
                  • 4

                  #9
                  Obtener los datos de interés

                  Un saludo Pablo
                  Cuando hagas la conexión debes hacerla a través de tu mandante. La tabla bajará con todos los centros que maneje ese mandante. Para evitar eso debes poner filtro a la tabla por un valor del centro de tu interés. Por ejemplo para yo bajar la tabla MAST la bajo colocando el filtro: MAST.WERKS = '1000' porque este es centro de mi interés.
                  Espero que esto te ayude.
                  Editado por última vez por AntonioCamejo; 07/05/2013, 15:57:29.

                  Comentario

                  • AntonioCamejo
                    Junior Member
                    • may
                    • 4

                    #10
                    Originalmente publicado por PabloCanales
                    Estimados; una consulta; cuándo te conectas al SAP a través del Excel implica en algo el usuario con el que entres? esto debido a que me connecto a SAP y me rescata información pero de otros centros y no desde donde estoy trabajando.


                    Atte.
                    Pablo
                    Un saludo Pablo
                    Cuando hagas la conexión debes hacerla a través de tu mandante. La tabla bajará con todos los centros que maneje ese mandante. Para evitar eso debes poner filtro a la tabla por un valor del centro de tu interés. Por ejemplo para yo bajar la tabla MAST la bajo colocando el filtro: MAST.WERKS = '1000' porque este es centro de mi interés.
                    Espero que esto resuelva tu duda.

                    Comentario

                    • von_korey
                      Junior Member
                      • ago
                      • 1

                      #11
                      Si lo que necesito es importar de la transaccion CS12 a excel como lo hago?

                      Estos 3 datos donde los puedo obtener:

                      sapConnection.SystemNumber = 0
                      sapConnection.System = "DES"
                      sapConnection.HostName = "serverxxx"

                      Gracias!

                      Originalmente publicado por COLSEN
                      Sub GetCLientes()

                      'Declaration

                      Dim objBAPIControl As Object 'Function Control (Collective object)
                      Dim sapConnection As Object 'Connection object
                      Dim Total

                      ' Assign.
                      Set objBAPIControl = CreateObject("SAP.Functions")
                      Set sapConnection = objBAPIControl.Connection

                      'Logon with initial values Credenciales de conexcion

                      sapConnection.Client = "111"
                      sapConnection.User = "DESADM"
                      sapConnection.Password = "xxxxx"
                      sapConnection.SystemNumber = 0
                      sapConnection.System = "DES"
                      sapConnection.HostName = "serverxxx"
                      sapConnection.Language = "ES"

                      If sapConnection.logon(1, True) <> True Then
                      MsgBox "No connection to R/3!"
                      Exit Sub
                      End If

                      'Prepare output to the EXCEL worksheet

                      Worksheets(2).Select
                      Cells.Clear

                      Set objTableSAP = objBAPIControl.Add("ZCLIENTES")

                      'call the 1st BAPI to retrieve the list of clients'
                      returnFunc = objTableSAP.Call

                      If returnFunc = True Then
                      Dim objTable As Object
                      Set objTable = objTableSAP.Tables("ZCLIENTES")
                      Total = objTable.RowCount

                      ActiveSheet.Cells(1, 1) = "Cantidad :" & Total

                      For i = 1 To Total

                      ActiveSheet.Cells(2 + i, 1) = objTable.Cell(i, 1)
                      ActiveSheet.Cells(2 + i, 2) = objTable.Cell(i, 2)
                      ActiveSheet.Cells(2 + i, 3) = objTable.Cell(i, 3)
                      ActiveSheet.Cells(2 + i, 4) = objTable.Cell(i, 4)
                      ActiveSheet.Cells(2 + i, 5) = objTable.Cell(i, 5)
                      ActiveSheet.Cells(2 + i, 6) = objTable.Cell(i, 6)
                      ActiveSheet.Cells(2 + i, 7) = objTable.Cell(i, 7)

                      Next i

                      End If

                      Columns("A:Z").EntireColumn.AutoFit

                      'Close connection to R/3 !
                      '
                      objBAPIControl.Connection.logoff
                      '
                      'Release the objects to free storage space
                      '
                      Set sapConnection = Nothing
                      Set functionCtrl = Nothing
                      MsgBox "Program terminated!", 0, "Exit"
                      End Sub

                      Comentario

                      Trabajando...