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

VB.NET Discussion :

Problème OLEAutomation Excel entre .NET 3.5 et .NET4


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 21
    Points : 11
    Points
    11
    Par défaut Problème OLEAutomation Excel entre .NET 3.5 et .NET4
    Bonjour

    J'ai un gros souci que je n'arrive pas à résoudre.

    J'ai écrit des centaines de lignes en .Net 3.5 pour bricoler avec des fichiers Excel sans aucun problème, mais voilà, le passage à .NET 4.0 ne se fait pas sans douleur.

    Le problème se situe au niveau de l'écriture des formules, par exemple, cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cell.Value = "=SOMME(N2:N" + (LineNumber).ToString + ")"
    qui donne comme résultat
    =SOMME(N2:N75)
    par exemple, fonctionne parfaitement en .NET 3.5 et donne une erreur
    #Nom
    dans Excel en .NET 4.0... Et ça, c'est le meilleur des cas, si j'utilise des formules "plus complexes"(???) comme CENTILLE ou ARRONDI me génère des erreure graves :
    Exception de HRESULT : 0x800A03EC
    Bien sur, j'ai essayé avec
    Cell.Formula
    mais pas mieux.

    Je suis vraiment embêté car je ne peux pas faire évoluer mon code vers .NET 4.0 à cause de ça.

    Pour info, le résultat est identique en C#

    Si quelqu'un à une idée/solution...

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je pense, et je dis bien je pense, que tes plages doivent être entre guillemets.

    Sinon, affiche un bout de code, pour permettre aux volontaires éventuels de tester. Je me demande aussi, s'il n'y a pas des modifications mineures à faire aux déclarations d'objets. (Excel, Worbooks, sheets etc.)
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Le problème m’intéresse mais comme le dit clementmarcotte il faudrait un bout de code "complet" pour que certains puissent tester rapidement ton soucis...
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Merci de vos réponses.

    Pour le bout de code, rien de plus simple :

    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
     
    Module Module1
     
        Sub Main()
            Dim Appli As Microsoft.Office.Interop.Excel.Application = Nothing 'Will receive Excel application
            Dim TFeuille As Microsoft.Office.Interop.Excel.Worksheet = Nothing 'will receive a sheet
            Dim Cell As Microsoft.Office.Interop.Excel.Range
            Appli = New Microsoft.Office.Interop.Excel.Application 'Excel application
     
            Appli.Visible = True
            Appli.Workbooks.Add()
            TFeuille = Appli.Worksheets(1)
     
            For i As Integer = 1 To 10
                Cell = TFeuille.Cells(i, 1)
                Cell.Value = i
            Next
     
            Cell = TFeuille.Cells(1, 2)
            Cell.Value = "=SOMME(A1:A10"
            Cell = TFeuille.Cells(1, 3)
            Cell.Value = "=ARRONDI(B1/4,5;2)"
     
        End Sub
     
    End Module
    A compiler en 3.5 et 4.0, bien sur, ne pas oublier l'interop Excel dans les références.

    Sinon, le résulat :

    3.5:


    4.0:

    et


    Edit:
    En continuant à farfouiller le code, je viens de trouver ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            Cell = TFeuille.Cells(1, 2)
            Cell.FormulaLocal = "=SOMME(A1:A10"
            Cell = TFeuille.Cells(1, 3)
            Cell.FormulaLocal = "=ARRONDI(B1/4,5;2)"
    Et là, tout baigne en .NET 4.0 ainsi que 3.5...YEAH!

    Me reste plus qu'à chercher les différences entre les diverses Formula.

  5. #5
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Et ici il ne manquerait pas une parenthèse fermante ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cell.FormulaLocal = "=SOMME(A1:A10"
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    Et ici il ne manquerait pas une parenthèse fermante ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cell.FormulaLocal = "=SOMME(A1:A10"
    Si...Mais pour le coup, ça sa ne gène pas Excel qui met la parenthèse tout seul comme un grand.

  7. #7
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Oki c'était juste pour confirmation vu que j'essaie de comprendre tout en essayant de t'aider ;-)
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par infosam76 Voir le message
    Oki c'était juste pour confirmation vu que j'essaie de comprendre tout en essayant de t'aider ;-)
    Ah, OK...

    Mais tu as vus l'edit de mon post? J'ai résolu avec FormulaLocal

  9. #9
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Oui tout à fait je vais examiner cela plus en profondeur ce soir ;-)
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

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

Discussions similaires

  1. problème de liaisons entre fichiers excel
    Par grrimag dans le forum Excel
    Réponses: 3
    Dernier message: 03/06/2008, 13h40
  2. Problème de liaison entre Word/excel et MOSS
    Par Faro dans le forum SharePoint
    Réponses: 2
    Dernier message: 02/01/2008, 18h19
  3. Réponses: 2
    Dernier message: 11/09/2007, 23h07
  4. Problème d'interop entre flock() et programme .Net
    Par scaleo dans le forum Langage
    Réponses: 1
    Dernier message: 01/08/2007, 16h06
  5. Réponses: 3
    Dernier message: 20/05/2006, 00h28

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