[Résolu] [Calc] Compter les cellules avec fond spécifique

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 !
viking76
Fraîchement OOthentifié
Messages : 2
Inscription : 28 janv. 2007 12:30

[Résolu] [Calc] Compter les cellules avec fond spécifique

Message par viking76 »

Bonjour,

Je cherche à transposer une fonction écrite en vba en fonction pour OpenOffice Calc.

La fonction permet de compter le nombre de cellules d'une plage de donnée comportant la même couleur de fond. Elle rend possible la réalisation d'un planning d'équipe visuel où les différents types d'absences (congés annuels, RTT, congés pour formation...) sont matérialisés par des couleur différentes.

Le code original VBA est le suivant :

Code : Tout sélectionner

Function JourSelonCouleur(Plage As Range, CouleurCell As Range, Valeur As Double)
Dim cell As Range
	For Each cell In Plage
		If cell.Interior.ColorIndex = CouleurCell.Interior.ColorIndex Then
			JourSelonCouleur = JourSelonCouleur + Valeur
		End If
	Next
End Function

Mon début de transposition en basic OpenOffice est le suivant :

Code : Tout sélectionner

function cooldl(CelluleReference As Object, Plage As Object)
Dim MonDocument As Object, MaFeuille As Object
Dim LaSelection As Object, mesValeurs As Object
Dim y1, CouleurBase As long
MonDocument = ThisComponent ' Le document utilisé est le document actif
MaFeuille = MonDocument.CurrentController.ActiveSheet ' La feuille utilisée est la feuillle active
CelluleBase = MaFeuille.getCellRangeByName (CelluleReference) 'Initialisation de la cellule de base
CouleurBase = CelluleBase.cellBackColor ' Récupération du code couleur de la cellule de base
LaSelection = Mafeuille.getCellRangeByName (plage) ' Initialisation de la plage sur laquelle on veut réaliser les comptage

Je butte sur la réalisation de la boucle qui lit les valeur de fond de cellule de chaque élément de la plage et qui incrémente le compteur.

Quelqu'un a-t-il une petite idée pour me permettre d'arriver à mes fins ?

Merci d'avance.
Dernière modification par viking76 le 29 janv. 2007 07:33, modifié 1 fois.
Ooo 2.1 sur Windows XP familial
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Message par jeanmimi »

Bonsoir,

Dans ce fil, Jeff commente et illustre deux approches avec les fonctions NB.SI et SOMMEPROD :

http://user.services.openoffice.org/fr/ ... tyles.html
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 10:42

Message par Pierre-Yves Samyn »

Bonjour

Tu peux également t'inspirer de ce fil http://user.services.openoffice.org/fr/ ... =6342#6342

La demande était de faire la somme des cellules de la même couleur (arrière plan)
Mharry
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 08 nov. 2006 01:03

Message par Mharry »

Salut,
Tu devrais regarder ce fichier :
http://user.services.openoffice.org/fr/ ... 102433.ods

Ce n'est pas exactement ce que tu cherches, mais ça peut éventuellement te donner des idées. :wink:
Bye
MH
OOo---+---oOO
~ Linux - XP ~
viking76
Fraîchement OOthentifié
Messages : 2
Inscription : 28 janv. 2007 12:30

Message par viking76 »

Merci pour votre réactivité.

J'ai trouvé mon bonheur grâce à vous (plusieurs moyens de parvenir à mes fins).

Bonne journée à tous
Ooo 2.1 sur Windows XP familial
Répondre