Bonjour,

Je tente de colorer les cellules modifiées par rapport à leur valeur initiale mais sans vrai succès malgré de nombreux essais avec $table->bind, $table->configure(-browsecmd..) et $table->configure(-validatecmd..) .

Le code ci-dessous fonctionne mais il y a surement beaucoup plus propre et simple, et surtout plus efficace que de rebalayer 2 hash :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$table->configure (
  -browsecmd => sub {
   my ( $previous_index, $current_index ) = @_;
 
	my $new_value = $table->get($current_index) ;
	my $previous_value = $table->get($previous_index) ;
 
	# Check if we did select a cell and not an entire row or a column
   if ( $previous_index =~ m{^\d+,\d+$} ) {
 
		# Store the updated cell into hash for later needs
		$spreadsheet_current->{$current_index} = $new_value ;
 
		# Highlight all changes
		while ( my ($k,$v) = each(%$spreadsheet_initial) ) {
				$table->tagCell('modified', "$k" ) if ($spreadsheet_current->{$k} ne $spreadsheet_initial->{$k});
		}
 
	}
  },
 
);
Merci d'avance si vous pouvez donner une meilleure solution.