erreur

erreur - Perl - Programmation

Marsh Posté le 16-06-2006 à 13:55:25    

quelqu'un à déja eu l'erreur "Membre introuvable" et si oi que signifie t'elle?? merci

Reply

Marsh Posté le 16-06-2006 à 13:55:25   

Reply

Marsh Posté le 16-06-2006 à 13:59:01    

Jamais eu ce genre d'erreur. D'un autre côté, je n'ai jamais eu de problème à retrouver mes membres, quels qu'ils soient.
[:el g]

Reply

Marsh Posté le 16-06-2006 à 13:59:17    

que c'en est fini de ta descendance [:spamafote]

Reply

Marsh Posté le 16-06-2006 à 14:08:22    

Préférer vous ceci??? Ne t'inquiète pas j'ai de qoa l'assurer ma descendance
 
 
[Fri Jun 16 13:54:53 2006] extract_all.pl: Win32::OLE(0.1702) error 0x80020003: "Membre introuvable"
[Fri Jun 16 13:54:53 2006] extract_all.pl:     in METHOD/PROPERTYGET "" at extract_all.pl line 114

Reply

Marsh Posté le 16-06-2006 à 14:10:07    

Et il y a quoi, à la ligne 114 du script extract_all.pl ? [:el g]
 
 
 
_darkalt3_ > grilled :o

Reply

Marsh Posté le 16-06-2006 à 14:11:02    

[:god]

Reply

Marsh Posté le 16-06-2006 à 14:12:40    

je vais vous collez le code ca vous aideras surement mieux (dsl je pensais à autre chose quand j'ai poster je l'ai oublier)
 
 

Code :
  1. # !usr/perl/bin/
  2. # Modules nécessaires
  3. use strict;
  4. use Spreadsheet::WriteExcel;
  5. use warnings;
  6. use Win32::OLE qw(in with);
  7. use CGI::Carp qw(fatalsToBrowser);
  8. use Win32::OLE::Const 'Microsoft Excel';
  9. $Win32::OLE::Warn = 3;
  10. use Cwd;
  11. my $dir = cwd;
  12. chdir $dir;
  13. my @ListeXLS = <*.xls>;
  14.       foreach my $xls (@ListeXLS)
  15.       {
  16.       if($xls =~ / traité.xls/)
  17.       {next;}
  18. # Création d'une nouvelle instance du package pour Excel
  19. my $Excel = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit');
  20. # Ouverture du fichier Excel "C:\\stat.xls"
  21. my $Book = $Excel->Workbooks->Open("$dir/$xls" ) || die "Fichier non trouvé";
  22. print "debut\n";
  23. #choix des donner à extraire
  24. my $col;
  25. my $numSheet;
  26. print "quelles données souhaité vous extraire?\n";
  27. print "auteur taper 1\n";
  28. print "organisation taper 2\n";
  29. print "ic taper 3\n";
  30. chomp($_ = <STDIN> );
  31. if ($_ =~ /1/){$col=80;$numSheet="1";}
  32. elsif($_ =~ /2/){$col=81;$numSheet="2";}
  33. elsif($_ =~ /3/){$col=73;$numSheet="3";}
  34. print "$_\n";
  35. sleep 5;
  36. # Affectation du 1er classeur à la variable $Sheet
  37. my $Sheet = $Book->Worksheets(1);
  38. # Récupération des valeurs de toutes les cellules comprises entre B2 et B10
  39. my $array = $Sheet->Columns($col)->{'Value'}; # get the contents
  40. # Récupération des valeurs de toutes les cellules comprises entre A2 et A10
  41. my $array2 = $Sheet->Columns(1)->{'Value'}; # get the contents
  42. $Book->Close;
  43. $xls =~ s/.xls/ traité.xls/;
  44. my $scalar2="01";
  45. my @indent;
  46. my $z;
  47. foreach my $ref_array2 (@$array2) {
  48.        # Parcours de chaque ligne
  49.        foreach $scalar2 (@$ref_array2) {
  50.           if ($scalar2){
  51.               push (@indent,$scalar2);
  52.           }
  53.           else{
  54.               goto FINBOUCLE;
  55.           }
  56.        }
  57. }
  58. FINBOUCLE:
  59. my $workbook;
  60. #my $Excel1 = Win32::OLE->GetActiveObject('Excel.Application') || Win32::OLE->new('Excel.Application', 'Quit');
  61. if (-e $xls) {
  62.     print "existe\n";
  63.     $workbook = $Excel->Workbooks->Open("$dir/$xls" ) || die "impossible d'ouvrir le fichier $xls ou fichier ouvert";
  64. }
  65. else{
  66.     # Creer une page excel ayant pour le même nom que le fichier txt
  67.     $workbook = Spreadsheet::WriteExcel->new($xls) || die "impossible de creer $xls ou fichier ouvert";
  68.     $workbook->add_worksheet("auteur" );
  69.     $workbook->add_worksheet("organisation" );
  70.     $workbook->add_worksheet("ic" );
  71. }
  72. # sélectionner la feuille la feuille
  73. my $worksheet;
  74. if ($numSheet eq 1){
  75. $worksheet = $workbook->Worksheets(1);
  76. print "feuille 1\n";
  77. }
  78. elsif($numSheet eq 2){
  79. $worksheet = $workbook->Worksheets(2);
  80. print "feuille 2\n";
  81. }
  82. elsif($numSheet eq 3){
  83. $worksheet = $workbook->Worksheets(3);
  84. print "feuille 3\n";
  85. }
  86. my $ligne_excel = 0;
  87. my $j=0;
  88. # Affichage de ces valeurs
  89. foreach my $ref_array (@$array) {
  90.        # Parcours de chaque ligne
  91.        foreach my $scalar (@$ref_array) {
  92.             # Parcours
  93.             print "--------------------------------------------------------\n";
  94.             print "$indent[$j] $scalar\n";
  95.             if($indent[$j]){
  96.                     if ($scalar)
  97.                     {
  98.                         if ($col eq "73" ){
  99.                             foreach my $word ( split(' ',$scalar) ) {
  100.                                 if ($word eq "-" ){}   #si le mot est un -
  101.                                 else{
  102.                                     my $toto =$indent[$j];
  103.                                     $worksheet->write($ligne_excel, 0,$toto);
  104.                                     $worksheet->write($ligne_excel, 1,$word);
  105.                                     $ligne_excel++;
  106.                                 }
  107.                             }
  108.                         }
  109.                         else{
  110.                             foreach my $word ( split(';',$scalar) ) {
  111.                                 $worksheet->write($ligne_excel, 0,"$indent[$j]" );
  112.                                 $worksheet->write($ligne_excel, 1,$word);
  113.                                 $ligne_excel++;
  114.                             }
  115.                         }
  116.                     }
  117.                     else{
  118.                         #remplissage du fichier excel
  119.                         $worksheet->write($ligne_excel, 0,$indent[$j]);
  120.                         $worksheet->write($ligne_excel, 1,"no patentee" );
  121.                         $ligne_excel++;
  122.                     }
  123.             $j++;
  124.             }
  125.             else{goto FINFIC;}
  126.        }
  127. }
  128. FINFIC:
  129. }
  130. print "Open Perl IDE Test finished.\n";

Reply

Marsh Posté le 16-06-2006 à 14:32:11    

Ben ton objet worksheet il connait pas la méthode write() [:spamafote]
 
D'un autre côté, je ne la vois pas non plus dans la doc de Win32:: OLE.
Je subodore l'utilisation d'une méthode de Spreadsheet::WriteExcel sur un objet Win32:: OLE, d'où *boom*


Message édité par Elmoricq le 16-06-2006 à 14:32:35
Reply

Marsh Posté le 16-06-2006 à 15:51:02    

eu serais il possible d'avoir le lien sur la doc d'OLE stp
 
et eu si j'ai bien compris c'est ceci:
 

Code :
  1. #
  2. if ($numSheet eq 1){
  3. #
  4. $worksheet = $workbook->Worksheets(1);
  5. #
  6. print "feuille 1\n";
  7. #
  8. }
  9. #
  10. elsif($numSheet eq 2){
  11. #
  12. $worksheet = $workbook->Worksheets(2);
  13. #
  14. print "feuille 2\n";
  15. #
  16. }
  17. #
  18. elsif($numSheet eq 3){
  19. #
  20. $worksheet = $workbook->Worksheets(3);
  21. #
  22. print "feuille 3\n";
  23. #
  24. }


 
qui va pas ???

Reply

Marsh Posté le 16-06-2006 à 15:54:08    

Lanfeust42 a écrit :

eu serais il possible d'avoir le lien sur la doc d'OLE stp


 
Mais tu l'as eu où ton module ? :??:
 
http://search.cpan.org :o
(Win32:: OLE : http://search.cpan.org/~jdb/libwin [...] n32/OLE.pm )
 
 

Lanfeust42 a écrit :

et eu si j'ai bien compris c'est ceci:
 

Code :
  1. ...


 
qui va pas ???


 
Euh... dans le code que tu montres, il n'y a pas la ligne 114, ni de méthode write() utilisée.

Reply

Marsh Posté le 16-06-2006 à 15:54:08   

Reply

Marsh Posté le 16-06-2006 à 16:04:59    

oui mais tu ma dit:

Citation :

utilisation d'une méthode de Spreadsheet::WriteExcel sur un objet Win32:: OLE


 
donc si je crée un objet spreadsheet au lieu d'un OLE ca devrais marcher non??? bon j'essai

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed