Bonjour, Je recherche la syntaxe utiliser pour déplacer le curseur d'écriture dans une cellule d'un tableau à l'intérieur d'un document oWriter ? Sous VB express 2005 j'ai utiliser sans succès cette méthode : Sub HyperLienTableauPosition(ByVal sNomTableau As String, ByVal sLigneCellule As Integer, ByVal sColonneCellule As Integer, ByVal sTexteAAfficher As String, ByVal sURL As String) Dim oMonTexte As Object Dim oMonCurseur As Object Dim oMonTableau As Object Dim oMaCellule As Object Dim sDocument As String Dim Arguments(4) As Object sDocument = ConvertToUrl(sURL) oSel = oDocument.CurrentController.Frame If oDocument.TextTables.hasByName(sNomTableau) Then oMonTexte = oDocument.Text oMonCurseur = oMonTexte.CreateTextCursor oMonCurseur.gotoNextParagraph(False) oMonCurseur.gotoNextParagraph(False) oMonTableau = oDocument.TextTables.getByName(sNomTableau) oMaCellule = oMonTableau.getCellByPosition(sColonneCellule - 1, sLigneCellule - 1) oMaCellule.string = "-"
Arguments(0) = MakePropertyValue("Hyperlink.Text", sTexteAAfficher) Arguments(1) = MakePropertyValue("Hyperlink.URL", sDocument) Arguments(2) = MakePropertyValue("Hyperlink.Target", "") Arguments(3) = MakePropertyValue("Hyperlink.Name", sTexteAAfficher) Arguments(4) = MakePropertyValue("Hyperlink.Type", 1) oDispatcher.executeDispatch(oSel, ".uno:SetHyperlink", "", 0, Arguments) End If End Sub Après avoir créé mon tableau avec la méthode suivante : Sub InsererUnTableauUNO(ByVal sNombreLignes As Integer, ByVal sNombrecolonnes As Integer, ByVal sNomTableau As String) Dim Arguments(3) As Object Arguments(0) = MakePropertyValue("TableName", sNomTableau) Arguments(1) = MakePropertyValue("Columns", sNombrecolonnes) Arguments(2) = MakePropertyValue("Rows", sNombreLignes) Arguments(3) = MakePropertyValue("Flags", 11) oSel = oDocument.CurrentController.Frame oDispatcher.executeDispatch(oSel, ".uno:InsertTable", "", 0, Arguments) End Sub Mon problème est que le curseur d'acriture ne se déplace pas dans la cellule choisie et l'hyperlien est inséré à la position du curseur. Lorsque je fais une simple écriture avec la méthode suivante cela fonctionne : Sub EcrireTableauPosition(ByVal sNomTableau As String, ByVal sLigneCellule As Integer, ByVal sColonneCellule As Integer, ByVal sValeur As String) Dim oMonTexte As Object Dim oMonCurseur As Object Dim oMonTableau As Object Dim oMaCellule As Object If oDocument.TextTables.hasByName(sNomTableau) Then oMonTexte = oDocument.Text oMonCurseur = oMonTexte.CreateTextCursor oMonCurseur.gotoNextParagraph(False) oMonCurseur.gotoNextParagraph(False) oMonTableau = oDocument.TextTables.getByName(sNomTableau) oMaCellule = oMonTableau.getCellByPosition(sColonneCellule - 1, sLigneCellule - 1) oMaCellule.string = sValeur End If End Sub Merci d'avance pour votre aide en espérant que quelqu'un pourra corriger mon code Bon Dev Cezame