Calc Vb Get ListBox DataValidation value

Bonjour,
Je n’arrive pas à trouver de doc pour manipuler des listes de validation. Je souhaite juste récupérer les valeurs sélectionnées.
Merci infiniment
Sans nom 2.ods (9.7 KB)

Bonjour Nadonad,

vous trouverez une macro qui détermine la sélection actuelle, lui applique une couleur de fond et un libellé, en cliquant sur le lien :

Calc + classeur exemple

option explicit 

sub LibOGererSelection

dim LibOFeuille as object
dim LibOSelCourante as object
dim LibOUneCellule as object

dim LibONbPlages as integer
dim LibONbCol as integer
dim LibONbLig as integer

LibOFeuille = thisComponent.CurrentController.ActiveSheet
LibOSelCourante = ThisComponent.CurrentSelection

if LibOSelCourante.supportsService("com.sun.star.sheet.SheetCell") then
	LibOGererSelectionSuite(LibOSelCourante)
elseif LibOSelCourante.supportsService("com.sun.star.sheet.SheetCellRange") then
	with LibOSelCourante.RangeAddress
		for LibONbCol = .StartColumn to .EndColumn
			for LibONbLig = .StartRow to .EndRow
				LibOUneCellule = LibOFeuille.getCellByPosition(LibONbCol, LibONbLig)
				LibOGererSelectionSuite(LibOUneCellule)
			next LibONbLig
		next LibONbCol
	end with
elseif LibOSelCourante.supportsService("com.sun.star.sheet.SheetCellRanges") then
	for LibONbPlages = 0 to ubound(LibOSelCourante.RangeAddresses)
		with LibOSelCourante.RangeAddresses(LibONbPlages)
			for LibONbCol = .StartColumn to .EndColumn
				for LibONbLig = .StartRow to .EndRow
					LibOUneCellule = LibOFeuille.getCellByPosition(LibONbCol, LibONbLig)
					LibOGererSelectionSuite(LibOUneCellule)
				next LibONbLig
			next LibONbCol
		end with
	next LibONbPlages 
else
	msgbox "la sélection doit être soit une cellule, soit une ou plusieurs plages de cellules"
end if
end sub

sub LibOGererSelectionSuite(LibOCell as object)

with LibOCell
	.string = "LibreOffice"
	.CellBackColor = 16765728
end with

end sub

:wink: