Bonjour,
La même macro, mais qui fonctione ;-)))

Attention, je crois que ton problème se situe au niveau des "Bibliothèques et Modules" : un classeur contient des bibliothèques (library), qui elles mêmes contiennent des modules VB, qui contiennent des macros.

Dans ton code, il est indiqué qu'il y a une bibliothèque "Standard" et une bibliothèque "Dialogue". Cette bibliothèque "dialogue" contiend un module (onglet) boite de dialogue nomé "Dialogue1"

Dans mon 2ème code, je suppose (ce qui est je crois le cas le plus fréquent, et - il me semble - le plus pratique) que le module de code et le module de boite de dialogue sont dans la même bibliothèque "Standard".

Bon courage,
Jean-Claude



sub essaie
Dim MonDocument As Object, LesFeuilles As Object, UneFeuille As Object, MaCellule As Object
Dim oBoiteDialogue As Object,ExitOk AS integer
Dim ChampDirection AS Object
Dim Direction As String

monDocument = thisComponent
LesFeuilles = MonDocument.Sheets
UneFeuille = LesFeuilles.getByName("Feuille1")
MonDocument.currentController.activeSheet = uneFeuille

exitOK = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
DialogLibraries.LoadLibrary("Dialogue")
oBoiteDialogue = CreateUnoDialog( DialogLibraries.Dialogue.Dialog1)

oBoiteDialogue.Model.TextField1.Text = "Toto"
if oBoiteDialogue.Execute = exitOK then
' récupération des données
       ChampDirection=oBoiteDialogue.GetControl("TextField1")
       Direction=ChampDirection.Text
       MaCellule=UneFeuille.getCellRangeByName("A1")
       MaCellule.string = (direction)
 end if
End Sub


Code en mettant les 2 modules (code et Boite de dialogue dans la même bibliothèque)
sub essaie
Dim MonDocument As Object, LesFeuilles As Object, UneFeuille As Object, MaCellule As Object
Dim oBoiteDialogue As Object,ExitOk AS integer
Dim ChampDirection AS Object
Dim Direction As String

monDocument = thisComponent
LesFeuilles = MonDocument.Sheets
UneFeuille = LesFeuilles.getByName("Feuille1")
MonDocument.currentController.activeSheet = uneFeuille

exitOK = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
oBoiteDialogue = CreateUnoDialog( DialogLibraries.Standard.Dialogue)

oBoiteDialogue.Model.TextField1.Text = "Toto"
if oBoiteDialogue.Execute = exitOK then
' récupération des données
       ChampDirection=oBoiteDialogue.GetControl("TextField1")
       Direction=ChampDirection.Text
       MaCellule=UneFeuille.getCellRangeByName("A1")
       MaCellule.string = (direction)
 end if
End Sub

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à