Bonjour a tous
j'ai besoin de votre aide j'ai un script dans lequel j'ai des BrowseEntry avant j'utilisé l'option choix pour choisir une variable , je désire maintenant avoir ce choix a partir d'un fichier excel en cliquant sur un bouton le script ouvre un fichié excel est rempli le choix de BrowseEntry.
je ne c'est pas si c'est possible
voici un script qui explique mon problem

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/perl
use strict;
use warnings;
use Tk;
use Cwd;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
use Win32::OLE::Variant;
$Win32::OLE::Warn = 1;
require Tk::BrowseEntry;
 
my $mw = MainWindow->new(
  -title      => "bm",
  -background => 'white',
);
$mw->minsize( 500, 500 );
 
my $frame = $mw->Frame()->pack(qw/ -pady 10 -padx 10 /);
 
my ( $argument1, $argument2 );
 
my $BrowseEntry1 = $frame->BrowseEntry(
  -label    => "name : ",
  -variable => \$argument1,
  -choices  => [ "$argument1" ],
)->pack(qw/ -side left -padx 10 /);
 
my $BrowseEntry2 = $frame->BrowseEntry(
  -label    => "n : ",
  -variable => \$argument2,
  -choices  => [ "1", "2" ],
)->pack(qw/ -side right -padx 10 /);
 
$mw->Button(
  -text    => "lancer prog",
  -command => [ \&voiture, \$argument1, \$argument2 ],
)->pack();
 
$mw->Button(
  -text    => "List",
  -command => [ \&liste, ],
)->pack();
 
MainLoop;
 
sub voiture {
  my ( $Refargument1, $Refargument2 ) = @_;
  my ( $argument1, $argument2 ) = ( ${$Refargument1}, ${$Refargument2} );
  print "Argument 1 :  : $argument1\n" if ( defined $argument1 );
  print "Argument 2 :  : $argument2\n" if ( defined $argument2 );
  if ( defined $argument1 and defined $argument2 ) {
    system("voiture_v8.exe $argument1 $argument2");
  }
  else {
    warn "Les 2 arguments ne sont pas ok\n";
  }
  return;
}
sub liste {
 
     my $choix1="list.xls";
     my $argument1;
     my $cmd = getcwd;
        $cmd =~ s/\//\\/g;
     my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application');
        $Excel->{Visible} = 1;
     my $book = $Excel->Workbooks->Open("$cmd/$choix1") or die Win32::OLE->LastError;
 
     my $sheet    = $book -> Worksheets(1) -> {Name};
        $sheet    = $book -> Worksheets($sheet);
        $sheet                -> Activate;
        $sheet -> Range("A") -> {Value} = "$argument1";
 
   $book->Save();
   $Excel->Quit();
};