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 :

Récupérer dans une variable le résultat d'une formule excel contenue dans une cellule.


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Récupérer dans une variable le résultat d'une formule excel contenue dans une cellule.
    Bonjour, je me heurte actuellement à soucis dans le développement d'une petite appli me permettant de lire un fichier d'horaires.

    Dans mon fichier à lire nous avons des lignes remplies soit de texte directement comme "B" "B" "B" dans plusieurs cellules soit vides, soit contenant des formules telles que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =IF($C205<>"";INDEX(R$1:R$199;$E205);"")
    Lorsque mon application lit une ligne, j'arrive a récupérer la valeur d'une cellule mais ce qu'il me faudrait c'est le résultat de la formule excel contenue dans cette cellule.


    Actuellement j'utilise la fonctione .Value de la classe range pour récupérer la valeur de ma cellule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    horaire = horsource.Cells(numligne, 4).value
    Evidemment s'il y a une formule dans ma cellule, le résultat est la formule. J'ai eu beau cherché sur le forum, je n'ai pas encore trouvé mon bonheur.

    Contournement : J'avais tenté de faire un copier/coller les valeurs de ma ligne sur un nouveau fichier via mon code mais cela allait à l'encontre d'une de mes contraintes : l'application doit fonctionner de manière transparent et aucune fenêtre présentant le fichier excel ne doit apparaitre, donc pour le copier/coller c'est raté.

    J'attend vos idées avec impatiences, je suis débutant et là je bloque depuis 2 semaines là dessus

    Merci d'avance pour vos suggestions

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut recuper valeur cellules Excel contenant une formule
    bonjour ,ikoyy

    utilise l'objet range lorsque tu travailles avec des valeurs de cellules .c'est plus efficace .voici un bout de code qui recupere dans 2 textbox la valeur d'une cellule (3,1) et sa formule :

    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
     
    'Utilise Alias pour alleger ecriture  de code
    'panneau reference COM:une ref à Microsoft.excel 11.0 Object Library(excel 2003)
    '-2 boutons
    '-3 controles TextBox
    '-la cellule (1,1) contient une simple valeur
    '-la cellule (3,1) contient une formule =SI($C3<>22;D3;$E3).
    '- ca fonctionne nickel
    Imports OXL = Microsoft.Office.Interop.Excel
    Imports System.IO
    Public Class Form1
        Dim objAppExcel As OXL.Application
        Dim objClasseur As OXL.Workbook
        Dim objFeuille As OXL.Worksheet
        Public Sub New()
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            Me.TopMost = True
        End Sub
        Private Sub btnAfficheCellules_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAfficheCellules.Click
            Dim appPath As String = My.Computer.FileSystem.CurrentDirectory
            objAppExcel = New OXL.Application
            objClasseur = objAppExcel.Workbooks.Open(appPath & "\monClasseur.xls")
            objFeuille = objClasseur.Worksheets(1)
            objAppExcel.Visible = True
            'affiche valeur texte
            Me.txtValeur.Text = CType(objFeuille.Cells(1, 1).value, String)
            'affiche valeur formule1
            Dim rng As OXL.Range = Nothing
            rng = objFeuille.Cells(3, 1)
            Me.txtResultatFormule.Text = rng.Value.ToString
            'affiche valeur formule2
            rng = objFeuille.Cells(3, 1)
            Me.txtFormule.Text = rng.FormulaR1C1.ToString
     
        End Sub
     
        Private Sub btnQuitteExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuitteExcel.Click
            objAppExcel.Quit()
        End Sub
    End Class
    bon code....

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/05/2010, 08h24
  2. Réponses: 0
    Dernier message: 15/03/2010, 14h59
  3. Réponses: 8
    Dernier message: 28/04/2008, 13h28
  4. récupérer dans une variable le résultat d'une requete
    Par Stargate SG1 dans le forum Access
    Réponses: 1
    Dernier message: 31/05/2007, 18h08
  5. [Fonction]récuperer dans une variable le résultat d'une requete
    Par nejisama8 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 28/04/2007, 12h34

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