Ver la Versión Completa : actualizar excel con datos de sap automaticamente
yanez_surot
31/05/11, 15:36:37
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
18/06/11, 19:39:17
Alguien tiene el código vba mediante macros en excel conectar con el SAP, para obtener reportes... gracias por su ayuda ...
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
deseo usar el CreateObject("SAP.Functions"), pero me salta el siguiente #error <El componente activeX no puede crear el objeto>
Saludos
y muchas gracias
mgcarcamo
06/07/12, 17:04:58
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.
:D
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,
AntonioCamejo
22/02/13, 23:28:39
:) 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.
PabloCanales
25/04/13, 17:28:33
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
AntonioCamejo
07/05/13, 15:34:42
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.
AntonioCamejo
07/05/13, 16:02:39
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.
von_korey
06/11/14, 13:15:21
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!:confused:
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
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web