Dans une macro je cherche à intégrer la fonction DDE afin d'aller chercher des informations dans un autre document.
Je cherche à faire une boucle qui irait chercher cellule après cellule dans le fichier source et qui me le rentre dans mon fichier cible la aussi cellule après cellule.
J'ai donc essayer de programmer la fonction DDE mais je n'arrive pas à la faire marcher, certainement pour un problème de définition de variable (en fait je ne sais pas comment typer serveur, fichier, plage j'ai essaye en string et variant mais ça ne passe pas). Egalement je ne sais pas comment typer mon retour (string, Integer etc. sachant que mes données du fichier source se présentent sous plusieurs formes).
Je vous met mon code, la plage visée sur le fichier cible est facultative pour le moment :
Code : Tout sélectionner
REM ***** BASIC *****
Option Explicit
Sub Main
Dim oDocument As Object, oSheet As Object, oCell As Object
Dim i As Integer
Dim j As Integer
Dim mode As Integer
Dim serveur As String
Dim plage AS String
Dim fichier As String
oDocument = ThisComponent
oSheet = oDocument.Sheets.getByName("janvier2013")
fichier = "file:///C:/Users/tdanquigny-adc/Desktop/ORR4MAD/R4_218/R4_218_INTERNE_201303.ods"
serveur = "soffice"
mode = 0
i = 3
for j = 7 To 15
plage = "01 - Données agrégées.I" & str(j)
oCell = oSheet.getCellByposition(j,i)
oCell.String = FuncDDE(serveur,fichier,plage,mode)
next
End Sub
Function FuncDDE(serveur As String, fichier as String, Plage As String, mode As Integer) As String
Dim acceder As Object
acceder = CreateUnoService("com.sun.star.sheet.FunctionAccess")
FuncDDE = acceder.callFunction("DDE",serveur,fichier,plage,mode)
End Function En vous remerciant d'avance.

