Ma première demande sur ce forum qui m'a déjà appris beaucoup de choses.
Pour effectuer un pointage des présences, je voudrais qu'un double click sur une cellule change le contenu et les couleurs de cette cellule.
La routine ci-dessous fonctionne bien par le bouton de test, mais au double click la cellule passe en mode édition (c'est normal) même à la sortie de macro, si bien qu'un nouveau double click sur la même cellule donne des résultats erronés si on n'a pas fait échap ou click sur une autre cellule.
Comment faire pour que la cellule soit validée automatiquement?
Code : Tout sélectionner
sub PointePresence
'Modifie texte et couleurs de la celleule sur laquelle on fait un double click
dim doc as object, feuilles as object,feuille as object,cellule as object
dim nom as string,couleurfond as long,couleurpolice as long
dim ligne as long,colonne as long,texte as string
doc=thiscomponent
feuilles=doc.sheets
feuille=doc.CurrentController.ActiveSheet
cellule=doc.getcurrentselection
Ligne =Cellule.CellAddress.row
Colonne =Cellule.CellAddress.column
texte=cellule.string
if colonne<>2 or ligne<2 or ligne>8 then exit sub
select case texte
case =""
Cellule.cellbackcolor=&h13eddd
cellule.string="Prévu"
'pour sortir du mode edition de la cellule
'selectionne cellule suivante
cellule=feuille.getcellbyposition(colonne,ligne+1)
ThisComponent.CurrentController.Select(Cellule)
'puis revient à la cellule active
cellule=feuille.getcellbyposition(colonne,ligne)
ThisComponent.CurrentController.Select(Cellule)
case="Prévu"
Cellule.cellbackcolor= &h48ed13
cellule.string="Présent"
'pour sortir du mode edition de la cellule
'selectionne cellule suivante
cellule=feuille.getcellbyposition(colonne,ligne+1)
ThisComponent.CurrentController.Select(Cellule)
'puis revient à la cellule active
cellule=feuille.getcellbyposition(colonne,ligne)
ThisComponent.CurrentController.Select(Cellule)
case="Présent"
Cellule.cellbackcolor= &hffc600
cellule.string="Excusé"
'pour sortir du mode edition de la cellule
'selectionne cellule suivante
cellule=feuille.getcellbyposition(colonne,ligne+1)
ThisComponent.CurrentController.Select(Cellule)
'puis revient à la cellule active
cellule=feuille.getcellbyposition(colonne,ligne)
ThisComponent.CurrentController.Select(Cellule)
case="Excusé"
Cellule.cellbackcolor= &hed1329
cellule.string="Absent"
'pour sortir du mode edition de la cellule
'selectionne cellule suivante
cellule=feuille.getcellbyposition(colonne,ligne+1)
ThisComponent.CurrentController.Select(Cellule)
'puis revient à la cellule active
cellule=feuille.getcellbyposition(colonne,ligne)
ThisComponent.CurrentController.Select(Cellule)
case="Absent"
Cellule.cellbackcolor= &hffffff
cellule.string=""
'pour sortir du mode edition de la cellule
'selectionne cellule suivante
cellule=feuille.getcellbyposition(colonne,ligne+1)
ThisComponent.CurrentController.Select(Cellule)
'puis revient à la cellule active
cellule=feuille.getcellbyposition(colonne,ligne)
ThisComponent.CurrentController.Select(Cellule)
end select
end sub
Code : Tout sélectionner
'pour sortir du mode edition de la cellule
'selectionne cellule suivante
cellule=feuille.getcellbyposition(colonne,ligne+1)
ThisComponent.CurrentController.Select(Cellule)
'puis revient à la cellule active
cellule=feuille.getcellbyposition(colonne,ligne)
ThisComponent.CurrentController.Select(Cellule)
Comment faire pour récupérer dans une variable le nom de la cellule "cliquée"?
Merci pour votre aide