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 :

écrire une formule dans une cellule excel en visual basic


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 11
    Par défaut écrire une formule dans une cellule excel en visual basic
    Bonjour à tous,

    Je rencontre un problème dans le développement de mon application en Vb.Net. Cette application fait du post traitement dans excel suite à différents relevés. Dans ce post-traitement j'utilise la fonction Cubic_Spline qui a été installée depuis ce site : .

    j'ai effectué plusieurs tests dans Excel directement en entrant la formule à la main et cela fonctionne parfaitement. Nom : Capture2.PNG
Affichages : 1028
Taille : 37,3 Ko

    Mais lorsque j'essaye de le faire depuis mon application

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    While feuillet_Dest.Cells(Row, Last_Colon_Sheet - 4).value IsNot Nothing
     
                Dim Addresse3 As String = feuillet_Dest.Cells(Row, Last_Colon_Sheet - 1).Address(False, False)
                Dim pv As Char = ";"
                Dim Formul As String = "=Cubic_Spline(" & Addresse1 & ":" & Addresse12 & pv & Addresse2 & ":" & Addresse22 & pv & Addresse3 & ")"
                feuillet_Dest.Cells(Row, Last_Colon_Sheet).Formula = Formul
                Row += 1
            End While
    impossible une exception est générée.
    Exception from HRESULT: 0x800A03EC
    cependant, si je decide d'enlever le "=" de ma formule et donc écrire le reste sous forme de texte cela fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    While feuillet_Dest.Cells(Row, Last_Colon_Sheet - 4).value IsNot Nothing
     
                Dim Addresse3 As String = feuillet_Dest.Cells(Row, Last_Colon_Sheet - 1).Address(False, False)
                Dim pv As Char = ";"
                Dim Formul As String = "Cubic_Spline(" & Addresse1 & ":" & Addresse12 & pv & Addresse2 & ":" & Addresse22 & pv & Addresse3 & ")"
                feuillet_Dest.Cells(Row, Last_Colon_Sheet).Formula = Formul
                Row += 1
            End While
    Nom : Capture1.PNG
Affichages : 875
Taille : 37,4 Ko

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de Shennong
    Homme Profil pro
    Technicien Informatique/Hotliner
    Inscrit en
    Février 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Informatique/Hotliner
    Secteur : Santé

    Informations forums :
    Inscription : Février 2012
    Messages : 186
    Par défaut
    Bonjour,

    J'ai déjà eu besoin d'entrer des formules dans des cellules Excel à partir VB.Net.
    Pour effectuer cette opération j'ai procédé ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Imports EXCEL = Microsoft.Office.Interop.Excel
     
    Dim xlrange As EXCEL.Range
     
    xlrange = CType(worksheet.Cells(Compteur, 5), EXCEL.Range)
    xlrange.Formula = "=IF(AND(ISNUMBER($D$" & Compteur & "),ISNUMBER($B$" & Compteur & ")),(($D$" & Compteur & "*$B$" & Compteur & ")/(1000)),"""")"
    Dans cet extrait de code, sur cet exemple de formule, la variable "Compteur" est un Integer qui me servait à incrémenter le numéro de ligne du fichier Excel dans une boucle.
    Cela devrait prendre en compte l'utilisation de ton "Cubic_Spline" je pense.

    Une chose utile à savoir est que lorsque l'on entre une formule dans Excel depuis VB.Net, il faut impérativement mettre les mots clés de cette formule en anglais. Tu remarqueras l'utilisation de "IF" ou "ISNUMBER".

    Voilà, il n'y a plus qu'à adapter pour ton besoin je pense.

    Bon courage pour ton code.

    Cordialement-

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 11
    Par défaut
    Bonjour
    Merci pour ta réponse. Mais j'ai vraiment essayé beaucoup de choses et cela ne fonctionne toujours pas. Pourtant je rentre d'autre formule sans soucis ailleurs dans mon programme. Je continue de chercher.
    Cordialement.

Discussions similaires

  1. Problème : Fonctions et commande Execute
    Par bubi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/11/2005, 11h01
  2. Problème fonction SDL
    Par seeme dans le forum SDL
    Réponses: 2
    Dernier message: 06/11/2005, 20h22
  3. Problème fonction PL/SQL
    Par SSJ17Vegeta dans le forum PL/SQL
    Réponses: 2
    Dernier message: 29/10/2005, 21h14
  4. Problème fonction et trigger sous 7.2
    Par anoukhan dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/06/2005, 22h53
  5. Réponses: 2
    Dernier message: 20/08/2004, 17h10

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