Bonjour à tous ,
Je commence tout juste à programmer sous Basic LibreOffice, et je galère déjà
Le besoin :
une boite de dialogue permettant entre autre de récupérer l'adresse d'une cellule dans la feuille active et de renseigner avec un text Field
Donc , j'ai procédé comme suit:
Un bouton sur la feuille qui affiche la boite de dialogue 01 ( contient des text Field pour renseigner des valeurs nécessaires au traitement que je veux faire par la suite ) + un bouton dont la fonction est d'afficher une seconde boite de dialogue pour le remplissage du text Field relatif à l'adresse de la cellule pointée sur la feuille , le même mécanisme de remplissage des plages de données dans l'étape 2 de l'insertion d'un diagramme dans une feuille calc
j'utilise la macro suivante :
Mais ça ne marche pas !!!!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 REM ***** BASIC ***** Option Explicit dim exitOK, PysBibli as object Global Continuer as boolean Global ListenerTop as object, Dialogue as object Sub PysLancer dim PysDialogue as object, Dlg as object dim oTxt As Object dim compteur As Integer dim nCell As String dim ExoClasseur as Object, ExoFeuille as Object exitOK = com.sun.star.ui.dialogs.ExecutableDialogResults.OK DialogLibraries.Loadlibrary("Standard") PysBibli = DialogLibraries.GetByName("Standard") PysDialogue = PysBibli.GetByName("Dialog1") Dlg = CreateUnoDialog(PysDialogue) if Dlg.Execute = exitOK then ' compteur : valeur de départ du compteur compteur = Dlg.GetControl("TextField1").Text ' ExoClasseur = thisComponent ExoFeuille=ExoClasseur.Sheets.getByName("Matrice Complétude") Dim I Dim adress As String For I = 1085 To 1090 adress="A"&I ExoFeuille.getCellRangeByName(adress).string="SCN-" & compteur & "-" & ExoFeuille.getCellRangeByName(adress).string compteur = compteur+1 Next I Else MsgBox("Aucun séquensage n'a été exécuté", 64, "Annulation") Endif End Sub Sub AppelBoite(PysNomBoite) dim PysDialogue as object, Dlg as object PysDialogue = PysBibli.GetByName("Dialog2") Dlg = CreateUnoDialog(PysDialogue) 'Dlg.Execute ListenerTop = createUnoListener("TopListen_", "com.sun.star.awt.XTopWindowListener") Dlg.addTopWindowlistener(ListenerTop) Continuer = True while Continuer wait 20 Dlg.setVisible(true) wend end sub
ma première boite de dialogue apparait bien :
la seconde apparait avec des erreurs :
Alors que le résultat attendu en cliquant sur le bouton de la boite de dialogue 1 est la disparition de celle ci et l'apparition de la boite de dialog 2 qui elle doit permettre de sélectionner une cellule de la feuille ( donc non modal ????)
j'espère que j'ai été claire !!!!!!
Merci de me sortir de ce pétrin !!!
Partager