cs_nono48
Messages postés3Date d'inscriptionjeudi 3 septembre 2009StatutMembreDernière intervention 3 septembre 2009
-
3 sept. 2009 à 14:47
cs_nono48
Messages postés3Date d'inscriptionjeudi 3 septembre 2009StatutMembreDernière intervention 3 septembre 2009
-
3 sept. 2009 à 16:37
Bonjour,
J'ai développé une application en VB2008 sous Vista.
Cette appli prends 2 classeurs Excel en entrée, fait des calculs sur les données des deux classeurs et génère un nouveau classeur avec les données calculées.
Les tests s'avérant concluant, j'ai publié cette application et je l'ai installé sur quelques PC tournant sous W2K afin de valider cette appli.
Lors de son exécution je rencontre une exception lors de l'affectation d'une cellule (j'ai recompilé mon appli sous VS2005 et W2K) :
mSheet.Cells(1, 1).value = "valeur"
J'ai remplacé cette affectation par :
mSheet.Cells(1, 1) = "valeur"
même motif, même punition.
L'exception est :
Type de variable incorrect. (Exception de HRESULT : 0x80020008 (DISP_E_BADVARTYPE))
mSheet est défini comme étant:
Microsoft.Office.Interop.Excel.Worksheet
Merci de vos aides, suggestions afin d'alimenter mon tableur
Nono
A voir également:
Pb d'éxécution d'une appli développée sous VB2008/ Vista, éxécutée sous W2K.
cs_nono48
Messages postés3Date d'inscriptionjeudi 3 septembre 2009StatutMembreDernière intervention 3 septembre 2009 3 sept. 2009 à 16:37
Le problème ne venait pas de là.
Tout bêtement, pour référencer une cellule, j'utilise 2 variables :
Dim Lig As Long = 1
Dim Col As Long = 1
et je fais l'affectation
mSheet.Cells(Lig, Col) = "valeur"
Or si ce code fonctionne correctement avec Vista / VS 2008 / Office 2007, pour W2K / VS 2005 / Office 2003, il faut déclarer Lig et Col comme Integer et non pas comme Long
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 3 sept. 2009 à 15:38
Bonjour,
L'erreur que tu as indique que le type de données est erronée. Vérifie que la cellule destinatrice est bien du même type que "valeur" (ici c'est du type string).
cs_nono48
Messages postés3Date d'inscriptionjeudi 3 septembre 2009StatutMembreDernière intervention 3 septembre 2009 3 sept. 2009 à 15:46
Comment vérifier qu'une cellule d'un tableur Excel est de type string ?
C'est mon appli qui a créé le classeur (début de ma classe) :
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop.Excel.XlRowCol
Imports Microsoft.Office.Interop.Excel.Constants
Imports Microsoft.Office.Interop.Excel.XlAxisType
Imports Microsoft.Office.Interop.Excel.XlAxisGroup
Imports Microsoft.Office.Interop.Excel.XlChartLocation
Imports Microsoft.Office.Interop.Excel.XlChartType
Friend Class ExportExcel
Private mappli As New Application
Private mSheet As Worksheet
Private u As New UtilsExcel
Private rng As Range
Private Const NbLgnArt = 6
Private Totaux As New Records_ArticleDonnees
Public Sub New(ByVal mrecords_ As Records_ArticleDonnees, _
ByVal path As String, _
ByVal pSemaine As SortedDictionary(Of String, String))
Dim Wb As Workbook
'Affiche le "popup" Patientez
Dim ToBePatient As New Patientez
ToBePatient.Show()
mappli.Visible = False
Wb = mappli.Workbooks.Add
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'
' Suppression des feuilles existantes, un classeur devant comporter au moins une
' feuille, la dernière est renommée en "FICHIER DETAIL"
'
For Each mSheet In Wb.Sheets
Try
mSheet.Delete()
Catch
mSheet.Name = " FICHIER DETAIL"
Continue For
End Try
Next
'
'--------------------------------------------------------------------------------
Ensuite, l'alimentation des cellules telles qu'indiqué dans mon précédent message