[Résolu] [Calc] Parcourir un tableau et appliquer un style

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 !
Aengus
Membre lOOyal
Membre lOOyal
Messages : 25
Inscription : 16 sept. 2009 09:30

[Résolu] [Calc] Parcourir un tableau et appliquer un style

Message par Aengus »

Bonjour,

N'ayant pas trouvé de réponse avec une MFC "classique" (voir https://forum.openoffice.org/fr/forum/v ... =4&t=61343), je tente ma chance avec une macro.
Il s'agit d'appliquer un style dans un tableau en parcourant une plage sous condition

Poser la question sous cette forme semble simple, mais je ne trouve pas la solution.
Le problème est que le style s'applique qu'à une seule cellule qui répond aux critères.

Voici la macro :

Code : Tout sélectionner

Sub Tour_jeux
	Dim oEve, oPlage1, oPlage2, oPlage3, oCal, oParam as Object
	Dim oDate1, oCell2, oCat, oCat_cal as Object
	Dim i, j, n, k, col2 as Integer
	Dim ligne1, ligne2, colonne as Integer
	Dim sStyle1 as string
	Dim sStyle2 as string
	Dim sStyle3 as string
	
	sStyle1 = "TD"
	sStyle2 = "TR"
	sStyle3 = "TN"
	
	col2 	= 16
	
	oEve  = ThisComponent.Sheets.getByName("Événements")
	oCal  = ThisComponent.Sheets.getByName("Calendrier")
	oParam  = ThisComponent.Sheets.getByName("Param")
	
'	oPlage1 = oEve.getCellRangeByPosition(1, 1, 1 , 100)
'	oPlage2 = oCal.getCellRangeByName("C5:AV40")
	
		For n=1 To 50	
			oDate1  = oParam.getCellRangeByName("A"+col2)
			oPlage1 = oEve.getCellByPosition(1, n)
			oCat    = oEve.getCellByPosition(3, n)
			oCell2  = oCal.getCellByPosition(1+n,2+n)
						
			If oCell2.value = oDate1.value AND oPlage1.String = "Tour régional" Then
				For i=1 to 50
					For j=1 to 15
						oPlage2 = oCal.getCellByPosition(1+i,3+j)
						oCat_cal= oCal.getCellByPosition(1,3+j)
						If oPlage2.String <>"" AND oCat_cal.string = oCat.String Then
							oPlage2.CellStyle = sStyle2
						End If
					Next j
				Next i
			End If
			col2  = col2+1
		Next n
End Sub
Il y a peut-être plus simple comme écriture que des "For" avec des "SI" :wink:

Merci par avance votre aide
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Aengus le 13 nov. 2019 21:50, modifié 2 fois.
Win 10

LibreOffice 6.3.3
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12231
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: Parcourir un tableau et appliquer un style

Message par Bidouille »

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?

Lisez ce fil pour savoir quelle balise utiliser : http://forum.openoffice.org/fr/forum/su ... html#27295

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.
Aengus
Membre lOOyal
Membre lOOyal
Messages : 25
Inscription : 16 sept. 2009 09:30

[Résolu][Calc] Parcourir un tableau et appliquer un style

Message par Aengus »

Sujet clos et résolu sans passer par une marcro

https://forum.openoffice.org/fr/forum/v ... =4&t=61343

Par contre, je suis curieux d'avoir la solution.
Je me coucherai moins idiot :D
Win 10

LibreOffice 6.3.3