Aide programmation basic dans calc

Fermé
Labevue - 15 avril 2012 à 19:02
Bonjour,

J'ai une valeur que je cherche dans un tableau de donné, et j'aimerais trouver ses coordonnées ou afficher ses antécédents. J'arrive à faire un programme qui cherche la valeur dans le tableau et qui la trouve/ou pas. Mais je n'arrive pas à trouver une fonction ou une méthode pour trouver ses coordonnées.

J'ai enregistrer une macro qui affiche les antécédents d'une cellule. J'ai trouvé la ligne correspondant au nom de la cellule : args1(0).Value = "B8"
il faudrait que je change le B8 par le nom de la case de la valeur recherché ....

En gros je lance la macro recherche qui cherche la valeur dans le tableau, quand elle la trouve elle appelle la macro antecedent et là j'aimerais qu'elle affiche les antécédents.

voilà le code :

sub recherche
	dim lig as integer, col as integer
	dim odocument as object, osheet as object, ocell as object
	 odocument=thiscomponent
	 osheet=odocument.sheets.getbyname("Feuille1")
	 donnee=ThisComponent.Sheets.getByName("Feuille1").getCellByposition(1,1).getvalue
	 
	 For lig= 7 to 9
		 For col= 1 to 6
			valeur=ThisComponent.Sheets.getByName("Feuille1").getCellByposition(col,lig).getvalue	    
		    
		    if donnee=valeur then
			  call antecedent
		      msgbox("yeah")
		    endif
		 next col
	 next lig	     
end sub



sub antecedent

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(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "B8"

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

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ShowPrecedents", "", 0, Array())

end sub




J'espère que vous avez compris mon problème !

merci pour vos réponses