IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

Gestion des erreurs venant de COM


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut Gestion des erreurs venant de COM
    Bonjour, les objets venant de COM manquent cruellement de doc sur le WEB et l'interprétation en PHP des objets venant de VB est souvent périlleuse.
    Lorsque je lis une cellule d'un fichier EXCEL (2003 je crois), s'il y a une formule EXCEL dans cette cellule qui plante,
    Excel traduit cette erreur par #VALUE! mais ce n'est pas une chaine :
    $Valeur = $this->_Feuille->Range($Cellule)->Value;
    un bon test règle le problème ...
    if (is_object($Valeur)) {

    Mais n'y a-t-il pas un moyen plus complet de piloter ces erreurs ?
    J'ai trouvé des bouts de code (en .NET je crois)
    mais à chaque fois, la routine fait référence à des constantes dont j'ignore comment les récupérer ....

    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
     
    Worksheets("Sheet1").Activate
    If IsError(ActiveCell.Value) Then
        errval = ActiveCell.Value
        Select Case errval
            Case CVErr(xlErrDiv0)
                MsgBox "#DIV/0! error"
            Case CVErr(xlErrNA)
                MsgBox "#N/A error"
            Case CVErr(xlErrName)
                MsgBox "#NAME? error"
            Case CVErr(xlErrNull)
                MsgBox "#NULL! error"
            Case CVErr(xlErrNum)
                MsgBox "#NUM! error"
            Case CVErr(xlErrRef)
                MsgBox "#REF! error"
            Case CVErr(xlErrValue)
                MsgBox "#VALUE! error"
            Case Else
                MsgBox "This should never happen!!"
        End Select
    End If
    ou
    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
     
    Public Function TypeCell(MyCell As Range) As String
        If IsEmpty(MyCell) Then
            TypeCell = "Vide"
        ElseIf Application.IsText(MyCell) Then
            TypeCell = "Texte"
        ElseIf Application.IsLogical(MyCell) Then
            TypeCell = "Logique"
        ElseIf Application.IsErr(MyCell) Then
            TypeCell = "Erreur"
        ElseIf IsDate(MyCell) Then
            TypeCell = "Date"
        ElseIf IsNumeric(MyCell) Then
            TypeCell = "Nombre"
        End If
    End Function
    ou encore ...
    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
     
      private static Object ContenuCellule(HSSFCell cell){
      Object value = null ;
      if(cell == null){
    value = "";
      }
     
      else if(cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN){
      value = cell.getBooleanCellValue();
      }
      else if(cell.getCellType() == HSSFCell.CELL_TYPE_ERROR){
      value = cell.getErrorCellValue();
      }
      else if(cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA){
      value = cell.getCellFormula();
      }
      else if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){
      value = cell.getNumericCellValue();
      }
      else if(cell.getCellType() == HSSFCell.CELL_TYPE_STRING){
      value = cell.getStringCellValue();
      }
      return value;

  2. #2
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut Aides-toi, le ciel t'aidera !
    C'est pas la foule sur ce sujet ?
    Un gars sur un autre forum m'a donné une aide sur les valeurs de constantes,
    il suffit dans les fenêtres de Visual Basic (for application) et de chercher ces objets spécifiques ...
    mais cela ne me permet pas de gérer les différents types d'objets renvoyés par COM
    Un exemple ? S'il y a une macro de type "Worksheet_DoubleClick" , la valeur ramenée (->value) est la macro et non la valeur contenue dans la cellule .
    La belle affaire ! Mais c'est le contenu de la cellule que je veux récupérer !
    Ben, t'a qu'à supprimer la macro !
    Mais ce n'est pas moi qui choisit les fichiers et encore moins leur contenu
    Je peux juste imposer une grille de lecture ....
    Si quelqu'un connait ce problème ....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gestion des erreurs venant de différentes couches
    Par ikuzar dans le forum Débuter
    Réponses: 2
    Dernier message: 01/04/2011, 13h09
  2. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 17h51
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 12h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 18h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 23h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo