Pb d'éxécution d'une appli développée sous VB2008/ Vista, éxécutée sous W2K.

Résolu
cs_nono48 Messages postés 3 Date d'inscription jeudi 3 septembre 2009 Statut Membre Dernière intervention 3 septembre 2009 - 3 sept. 2009 à 14:47
cs_nono48 Messages postés 3 Date d'inscription jeudi 3 septembre 2009 Statut Membre Derniè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

4 réponses

cs_nono48 Messages postés 3 Date d'inscription jeudi 3 septembre 2009 Statut Membre Derniè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

Merci quand même à tous

Nono
3
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
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).


Calade
0
cs_nono48 Messages postés 3 Date d'inscription jeudi 3 septembre 2009 Statut Membre Derniè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

Merci

Nono
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
3 sept. 2009 à 15:50
Bonjour,

Je ne connais pas la syntaxe par coeur, mais avec l'enregistreur de macro d'Excle, fait un clic droit sur une cellule et modifie son type.

Tu pourras ensuite récupérer le code ainsi généré et l'adapter à ta guise.


Calade
0
Rejoignez-nous