j'ai déja poster se message ailleur sans répondse pour le moment donc je la pose ici aussi:
Donc voila, j'ai un problème hier mon code marchai nikel, aujourd'hui je le relance et pouf il marche plus: aider moi s'il vous plai:

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
77
78
79
80
81
82
83
84
# !usr/perl/bin/
# Modules nécessaires
use strict;
use Spreadsheet::WriteExcel;
use warnings;
use Win32::OLE qw(in with);
use CGI::Carp qw(fatalsToBrowser);
use Win32::OLE::Const 'Microsoft Excel';
$Win32::OLE::Warn = 3;
use Cwd;
 
my $dir = cwd;
chdir $dir;
 
my @ListeXLS = <*.xls>;
      foreach my $xls (@ListeXLS)
      {
      print "$xls";
# Création d'une nouvelle instance du package pour Excel
my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit');
# Ouverture du fichier Excel "C:\\stat.xls"
my $Book = $Excel->Workbooks->Open("$xls") || die "Fichier non trouvé";
 
# Affectation du 1er classeur à la variable $Sheet
my $Sheet = $Book->Worksheets(1);
# Récupération des valeurs de toutes les cellules comprises entre B2 et B10
my $array = $Sheet->Columns(81)->{'Value'}; # get the contents
# Récupération des valeurs de toutes les cellules comprises entre A2 et A10
my $array2 = $Sheet->Columns(1)->{'Value'}; # get the contents
$Book->Close;
 
$xls =~ s/.xls/ org.txt/;
 
 
my $scalar2="01";
my @indent;
my $z;
foreach my $ref_array2 (@$array2) {
       # Parcours de chaque ligne
       foreach $scalar2 (@$ref_array2) {
          if ($scalar2 eq $z){
              goto FINBOUCLE;
          }
          else{
              push (@indent,$scalar2);
          }
       }
}
FINBOUCLE:
 
my $j=0;
# Affichage de ces valeurs
foreach my $ref_array (@$array) {
       # Parcours de chaque ligne
 
       foreach my $scalar (@$ref_array) {
             # Parcours
              print "--------------------------------------------------------\n";
              if($indent[$j]){
                  if ($scalar eq "")
                  {
                      open F, ">>$xls"; # ouverture en ajout dans un fichier existant
                      print F "$indent[$j]	";
                      print F "no patentee\n"; # écriture de $word dans le fichier
                  }
                  else{
                      foreach my $word ( split(';',$scalar) ) {
                          print "$indent[$j]  ";
                          print "$word\n";
                          open F, ">>$xls"; # ouverture en ajout dans un fichier existant
                          print F "$indent[$j]	";
                          print F "$word\n"; # écriture de $word dans le fichier
                      }
                  }
              $j++;
              }
              else{goto FINFIC;}
 
       }
 
}
close F;
FINFIC:
}



l'erreur est à l'ouverture du fichier et renvoi ceci:

[Thu Jun 15 10:14:24 2006] extract_org.pl: OLE exception from "Microsoft Office Excel":
[Thu Jun 15 10:14:24 2006] extract_org.pl:
[Thu Jun 15 10:14:24 2006] extract_org.pl: 'convertir.xls' introuvable. Vérifiez l'orthographe du nom du classeur et la
[Thu Jun 15 10:14:24 2006] extract_org.pl: validité de l'emplacement.
[Thu Jun 15 10:14:24 2006] extract_org.pl:
[Thu Jun 15 10:14:24 2006] extract_org.pl: Si vous essayez d'ouvrir le fichier à partir de la liste des fichiers les
[Thu Jun 15 10:14:24 2006] extract_org.pl: plus récents, assurez-vous que le fichier n'a pas été renommé, déplacé ou
[Thu Jun 15 10:14:24 2006] extract_org.pl: supprimé.
[Thu Jun 15 10:14:24 2006] extract_org.pl:
[Thu Jun 15 10:14:24 2006] extract_org.pl: Win32::OLE(0.1702) error 0x800a03ec
[Thu Jun 15 10:14:24 2006] extract_org.pl: in METHOD/PROPERTYGET "Open" at extract_org.pl line 22

le fichier existe bien sur.