Parcours de cellule excel, problème de types

Laodis Messages postés 25 Date d'inscription mercredi 11 février 2009 Statut Membre Dernière intervention 23 avril 2009 - 19 févr. 2009 à 11:11
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 - 20 févr. 2009 à 15:01
Bonjour , voici mon problème.
Je développe une application en VB.net, dont le but est de traiter des données excel et les ranger dans une base access.
Je souhaite trouver une valeur  contenue dans une variable 'mavar' déclarée en string, dans ma feuille excel :

Dim mavar As String = "toto"
If worksheet.Cells(i, j).Value <> Nothing And worksheet.Cells(i, j).Value = mavar Then

Le problème étant : J'ai déclaré mavar en string , mais lorsqu'elle passe sur une case contenant un double, une erreur se produit de type 'Impossible de convertir la cellule en string'.
Quand je mets un   worksheet.Cells(i, j).Value .toString = mavar,  ça me mets une erreur de type 'L'exception nullréférence n'as pas été gérée'

Quelqu'un aurait-il donc une solution pour parcourir et comparer la valeur contenue dans ma cellule avec ma variable, et ce quelqu'en soit le type ?

4 réponses

Laodis Messages postés 25 Date d'inscription mercredi 11 février 2009 Statut Membre Dernière intervention 23 avril 2009
19 févr. 2009 à 16:20
Edit : J'avais pour habitude de travailler en java, ou il existe une fonction instanceof() qui reconnait si une variable est d'un type souhaité, ce qui contournait le problème de concordance des types.

J'ai donc cherché en C# l'équivalent, et je l'ai traduit en VB.net , ce qui donne :  If worksheet.Cells(i, j).value.[GetType]().IsAssignableFrom(mavar.[GetType]()

Cependant, la boucle ne marche toujours pas. Si quelqu'un a une meilleure méthode pour la concordance des types, merci d'avance.
0
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
19 févr. 2009 à 19:25
Salut
et si "mavar" était déclarée en Object (type Vb.Net), équivalant à "Variant" (type VB6 et VBA Excel 2000) ?

CNTJC
0
Laodis Messages postés 25 Date d'inscription mercredi 11 février 2009 Statut Membre Dernière intervention 23 avril 2009
20 févr. 2009 à 11:23
bonjour,

Merci de ta suggestion , mais les mêmes erreurs se reproduisent.
C'est assez frustrant de ne pas pouvoir faire en VB ce que j'aurai fait en java.
Je vais continuer a chercher , merci quand même

cordialement
0
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
20 févr. 2009 à 15:01
Salut
Est ce que "Nothing" est bien employé dans ton test?
Et pourquoi pas utiliser la fonction "IsNumeric" .

If Not IsNumeric(ActiveSheet.Cells(i, j).Value) And ActiveSheet.Cells(i, j).Value = mavar Then

Affaire à suivre

CNTJC
0
Rejoignez-nous