Bonsoir Bernard,

Voici pour exemple et discussion le code produit par l'enregistreur :

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(17) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 2
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.Backward"
args1(4).Value = false
args1(5).Name = "SearchItem.Pattern"
args1(5).Value = false
args1(6).Name = "SearchItem.Content"
args1(6).Value = false
args1(7).Name = "SearchItem.AsianOptions"
args1(7).Value = false
args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 0
args1(9).Name = "SearchItem.SearchFlags"
args1(9).Value = 65536
args1(10).Name = "SearchItem.SearchString"
args1(10).Value = "Bye"
args1(11).Name = "SearchItem.ReplaceString"
args1(11).Value = ""
args1(12).Name = "SearchItem.Locale"
args1(12).Value = 255
args1(13).Name = "SearchItem.ChangedChars"
args1(13).Value = 2
args1(14).Name = "SearchItem.DeletedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.InsertedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.TransliterateFlags"
args1(16).Value = 1280
args1(17).Name = "SearchItem.Command"
args1(17).Value = 1

dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())


end sub

Le test effectué à pour vocation de retrouver le terme "Bye" dans les notes des cellules.

Celà semble OK.

Par contre, et cela me semble très surprenant, après exécution de la macro, si l'on appelle la recherche par le menu traditionnel cette dernière est amputée
- de la liste déroulante "Formule, etc",
- des boutons radio pour le paramètrage du sens de la recherche
- et de la case à cocher permettant de préciser l'étendue aux feuilles.

Alors bug ou pas ?

Arrives-tu à reproduire ?

Testé sous XP & OOo 2.0.2

François Gatto


Bernard Marcelly a écrit :
Bonjour Francois Gatto
Message du 2006-04-10 22:08:
Jean-Louis Berliet a écrit :
Dans un programme basic, j'ai besoin de rechercher les cellules d'un
document CALC qui comportent la même note. C'est possible dans
l'interface utilisateur, à l'aide du menu "Editer" > "Rechercher &
Remplacer", puis dans la partie "Autres options", en sélectionnant
"Notes" dans la liste "Rechercher dans".

Je n'arrive pas à trouver l'équivalent en Basic : la fonction
"createSearchDescriptor" ne comporte pas d'option indiquant que la
recherche va être faite sur des notes !

L'enregistreur permet de résoudre ce problème.


Dans le livre Programmation OpenOffice.org le tableau décrivant le descripteur de recherche indique:
SearchType  Integer  Propriété inutilisable

Ce paramètre SearchType n'est pas documenté.
Après analyse plus poussée, je conclus que SearchType correspond à l'option de recherche Où chercher? de l'interface utilisateur. Valeurs possibles:
  0 : chercher dans les formules
  1 : chercher dans les valeurs
  2 : chercher dans les notes

Pour comprendre le fonctionnement, mettre dans la feuille
a) une cellule avec la valeur 1848
b) une cellule avec le texte : 1848
c) une cellule avec le texte : date 1848
d) une cellule avec la formule =1848+17
e) une cellule avec la formule =1800 +48
f) une cellule avec une note dont le texte est :  1848
g) une cellule avec une note dont le texte est :  date 1848

Faire des essais avec SearchString = "1848" , SearchWord = True puis False, pour chaque valeur de SearchType. Le résultat est parfois surprenant mais toujours conforme à la recherche par l'interface utilisateur.

   Bernard

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

Répondre à