[Résolu]Mettre en valeur une ligne en modifiant sa couleur.

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
marcozappacosta
Fraîchement OOthentifié
Messages : 8
Inscription : 21 avr. 2006 06:52

[Résolu]Mettre en valeur une ligne en modifiant sa couleur.

Message par marcozappacosta »

Bonjour.
J'utilise une macro sous excell. J'aimerais la transposer sous OpenOffice2.0 Calc.
Voila ce que réalise la macro :

Image

Merci d'avance
Dernière modification par marcozappacosta le 02 mai 2006 22:48, modifié 1 fois.
lolo0323
Membre OOrganisé
Membre OOrganisé
Messages : 65
Inscription : 29 mars 2006 04:59

Message par lolo0323 »

Bonjour,

Code : Tout sélectionner

sub Worksheet_SelectionChange(target)  as object
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 ----------------------------------------------------------------------
Rem Positionne la selection de la zone
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = target

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

rem ----------------------------------------------------------------------
Rem Defini les proprietes de la selection
dim args2(4) as new com.sun.star.beans.PropertyValue
args2(0).Name = "BackgroundPattern.BackColor"
args2(0).Value = 16777113

dispatcher.executeDispatch(document, ".uno:BackgroundPattern", "", 0, args2())

end sub
Ca doit convenir à ton besoin.
Bonne journée
OOo 3.0.0 sous WinXP SP3
marcozappacosta
Fraîchement OOthentifié
Messages : 8
Inscription : 21 avr. 2006 06:52

[Résolu]

Message par marcozappacosta »

Voici la solution que j'ai concoctée. Merci à tous ceux qui m'ont aidé.

http://oooforum.free.fr/cijoint/fichier ... 123426.xte

:D

Code : Tout sélectionner

sub ColorierLigneCelluleActive
	MonDocument = ThisComponent
	MaFeuille = MonDocument.CurrentController.ActiveSheet
	'cellule active
	UneZone = monDocument.CurrentSelection
	X1 = UneZone.RangeAddress.StartColumn
	Y1 = UneZone.RangeAddress.StartRow
	X2 = UneZone.RangeAddress.EndColumn
	Y2 = UneZone.RangeAddress.EndRow
	
	if Y1>=3 and Y1<=36 then	
		for y=3 to 36
			UneLigne =  MaFeuille.getCellRangeByPosition(1,Y,23,Y)
			if Y=Y1 then
				UneLigne.CellBackColor = RGB(204,255,255) ' colorer la zone en bleu pale
			else	
				UneCellule = MaFeuille.getCellByPosition(25,Y)
				if UneCellule.string <> "" then 
					UneLigne.CellBackColor = RGB(255,128,128) ' colorer la zone en rouge pale
				else
					UneLigne.CellBackColor = RGB(255,255,204) ' colorer la zone en jaune pale
				end if			 
			end if
		next Y
	else
		UneZone = MaFeuille.getCellRangeByPosition(1,3,23,36)
		UneZone.CellBackColor = RGB(255,255,204) ' colorer la zone en jaune pale
	end if
end sub

Sub Listener_Install
   oDocView = ThisComponent.getCurrentController
   oListener = createUnoListener("Doc_","com.sun.star.view.XSelectionChangeListener")
   oDocView.addSelectionChangeListener(oListener)
End Sub
sub Listener_Remove
	oDocView.removeSelectionChangeListener(oListener)
end sub
sub Doc_disposing(oEvent)
	msgbox "disposing the listener"
end sub
Sub Doc_selectionChanged(oEvent)
	ColorierLigneCelluleActive	
Dernière modification par micmac le 14 mars 2017 07:25, modifié 1 fois.
Raison : ajout code en remplacement du lien