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:
	
=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:
	
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 :x
Merci d'avance pour vos suggestions
	 
	
	
	
		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:
	
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....