Je souhaite envoyer des données d'Excel via un connecteur RFC à SAP. Pour le module de fonction RFC, je dois remplir une table en tant que paramètre d'entrée. Comparable au module de fonction RFC STFC_DEEP_TABLE
. Malheureusement, mon code VBA arrête à la déclaration avec l'erreur:Module de fonction VBA vers SAP // RFC avec table en entrée Paramètre
“Object variable or With block variable not set”.
Voir ci-dessous.
S'il vous plaît, quelqu'un peut-il m'aider? Qu'est-ce qui ne va pas?
Sub RFC_DEEP_TABLE()
Dim sapConn As Object
Set sapConn = CreateObject("SAP.Functions")
If sapConn.Connection.Logon(0, False) <> True Then
MsgBox "Cannot Log on to SAP"
End If
Dim objRfcFunc As Object
Set objRfcFunc = sapConn.Add("STFC_DEEP_TABLE")
With objRfcFunc
.Exports.Item("IMPORT_TAB").value("STR") = "X" 'Objectvariable oder With-Blockvariable nicht festgelegt
End With
If objRfcFunc.Call = False Then
MsgBox objRfcFunc.Exception
End If
End Sub
Salut Dirk, Merci pour votre réponse. Malheureusement, cela ne fonctionne pas. La même erreur apparaît à la ligne "Set import_tab = objRfcFun.Tables (" IMPORT_TAB ")". Cordialement – user3213199
oui, il semble que ce soit un problème avec la fonction que vous voulez appeler. J'ai vu la même erreur ici, mais d'autres fonctions RFC, par exemple RFC_READ_TABLE, fonctionnent. Le débogage a montré que le code ne parvient même pas à créer l'objet objRfcFunc. Ma conjecture est la structure profonde utilisée dans le module de fonction n'est pas pris en charge dans la bibliothèque RFC classique. Il se peut que ce soit un bogue, mais j'ai testé deux versions différentes de SAP GUI et les deux avaient le même problème, donc ça pourrait être par conception. –