[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 !

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

Messagepar Aengus » 13 Nov 2019 17:06

Bonjour,

N'ayant pas trouvé de réponse avec une MFC "classique" (voir https://forum.openoffice.org/fr/forum/viewtopic.php?f=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   AgrandirRéduire
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
Pièces jointes
CALENDRIER MFC .ods
(60.77 Kio) Téléchargé 5 fois
Dernière édition par Aengus le 13 Nov 2019 22:50, édité 2 fois.
Win 10

LibreOffice 6.3.3
Aengus
Membre lOOyal
Membre lOOyal
 
Message(s) : 25
Inscrit le : 16 Sep 2009 10:30

Re: Parcourir un tableau et appliquer un style

Messagepar Bidouille » 13 Nov 2019 18:15

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é.
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 10212
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France

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

Messagepar Aengus » 13 Nov 2019 22:48

Sujet clos et résolu sans passer par une marcro

https://forum.openoffice.org/fr/forum/viewtopic.php?f=4&t=61343

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

LibreOffice 6.3.3
Aengus
Membre lOOyal
Membre lOOyal
 
Message(s) : 25
Inscrit le : 16 Sep 2009 10:30


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 8 invité(s)