Bonjour tout le monde (c'est mon premier post )
Depuis une semaine j'essaye tant bien que mal de réaliser un petit programme qui récupère des données de feuilles Excel (je débute tout juste en VB). Jusqu'à présent, avec l'excellent Tuto de M. Plasserre plus un peu l'aide de VS2005 et d'EXcel pour la partie VBA ça fonctionne lentement mais surement.
Sauf que là je dois faire un test sur une valeur ... et là c'est le drame.
En fait je récupère une valeur d'une cellule d'une feuille Excel que je stocke dans une variable (sinon en travaillant directement sur la valeur et si on fait un GetType on se retrouve avec un System._Object).
En récupérant la valeur (sauf pour une date qui se balade dans ma feuille) je récupère un string même si la valeur n'est que numérique.
Ma partie test consiste à vérifier si la valeur dans ma cellule est un vrai String, un faux String que je peux convertir en Integer ou si il y a Nothing.
En fait je fais une boucle For (pour passer en revue les cellules d'une colonne) et je dois en sortir si je récupère un Integer négatif (ou Nothing).
Je tombe sur le TryCast sur le tuto et je me dit "super c'est exactement ce qu'il me faut". Oui mais voilà : si je fais un Dim a As Integer = TryCast(valeurcellule, Integer) je me retrouve avec Integer souligné.
L'erreur serait qu'Integer n'est pas une valeur de référence mais une valeur de type. Si je mets String à la place d'Integer, là ça passe .
J'ai même fait un copier/coller à partir du tuto et je me retrouve avec la même erreur.
Je suis pourtant sur VS2005 avec toutes les maj dispos.
Si quelqu'un a une idée du comment du pourquoi je suis preneur ...
Merci
Edit:
Hop voilà mon petit bout de code :
Je fais donc un test sur la valeur de la cellule, et si y a une valeur j'essaye de voir s'il est possible de la convertir en Integer. Je peux mettre Dim a As Object ça change pas grand chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 If Not cellvalue = Nothing Then Dim a As String = cellvalue celltype = TryCast(a, Integer) End If If cellvalue = Nothing Or (celltype = "System.Integer" And cellvalue <= 0) Then
Partager