jfbriend
Messages postés1Date d'inscriptionsamedi 24 janvier 2009StatutMembreDernière intervention 7 février 2009
-
7 févr. 2009 à 14:00
cs_briendjf
Messages postés7Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 8 février 2009
-
8 févr. 2009 à 09:44
Bonjour,
Avec l'aide du Net, j'ai écrit ces quelques lignes qui devraient me permettre de trouver une chaine ou une cellule vide dans un tableau Excel, pour une certaine colonne (ici 4).
J'utilise Visual Basic 2005/2008.
Ici dans l'exemple ci-dessous je cherche une cellule contenant le nombre 30, mais ceci ne tourne pas (erreur à la ligne Loop until ....
J'ai déjà essayé beaucoup de variantes , mais sans succès, aussi je me tourne vers vous
Merci !
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click
Dim excelApp
As
Object
Dim ExcelCla
As
ObjectexcelApp = CreateObject(
"excel.application")excelApp.visible TrueExcelCla excelApp.Workbooks.open(
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 7 févr. 2009 à 15:59
bonjour
plutot que :
With excelApp.Worksheets(
"feuil1").select()
Dim I
AsIntegerDoI = I + 1
LoopUntil .cells(I, 4) = 30
il faudrait faire:
dim i as integer
do
i=i+1
LoopUntil excelApp.worksheets("feuil1").cells(i,4) = 30
puisque tu es dans du VBnet tu n'es pas dans le VBA de excel donc tu dois mettre le chemin complet de la cellule
le .select ne servant strictement à rien dans ton contexte
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
cs_briendjf
Messages postés7Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 8 février 2009 7 févr. 2009 à 16:17
Merci pour cette réponse; j'ai fait cette modi mais j'obtiens toujours un message d'erreur sur le "Loop" à savoir :
L'opérateur '<>' n'est pas défini pour type 'Range' et type 'Integer'.
que faire ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_briendjf
Messages postés7Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 8 février 2009 7 févr. 2009 à 16:39
En fait il y a généralement deux sortes de message d'erreur :
Celui que je vois lorque je lance le programme
Suite aux dernières modif c'est le message suivant que je vois :
A first chance exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll
Le deuxième message que je vois , c'est quand malgè le premier message je continue et je lance Excel en appuyant sur "button1"...
Est-ce plus clair ??
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 7 févr. 2009 à 16:43
c'est clair qu'on règle les problème dans l'ordre surtout
inutile de nous parler d'un "<>" qui, ici, ne correspond à rien si tu as un message d'erreur avant qui aurait nécessité une modification
le seul CAST qui pourrait coller, dans ton exemple, serait :
cs_briendjf
Messages postés7Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 8 février 2009 7 févr. 2009 à 17:00
Après avoir esayé les différents codes proposés, j'ai tout repris à zéro avec ces codes ci dessous
Lorsque je lance le button 1 j'ai le message suivant :
La conversion de la chaîne "e" en type 'Double' n'est pas valide.
Dim excelApp
As
Object
Dim ExcelCla
As
Object
Dim Excelfeuille
As
Object
cs_briendjf
Messages postés7Date d'inscriptionsamedi 4 novembre 2006StatutMembreDernière intervention 8 février 2009 8 févr. 2009 à 09:44
J'ai compris l'erreur que je faisais.
Avec un copier/coller dans le programme, je n'utilisais pas le "button1" de la forme mais celui du copier/coller... grave erreur de débutant !!
En résumé le programme tourne maintennat,grace à votre aide,-Merci.
Il me permet de dététecter dans un tableau Excel une ligne vide sur la colonne 4 ( dans mon exemple)
Puis de mettre sur la ligne vide , colonne 1, la date
Puis de mettre sur la ligne 2 une valeur.
Ci dessous les lignes de code :
Public
Class Form1
Private
Sub Form1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load
End
Sub
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click
Dim excelApp
As
Object
Dim ExcelCla
As
Object
Dim excelfeuille
As
ObjectexcelApp = CreateObject(
"excel.Application")excelApp.visible TrueExcelCla excelApp.Workbooks.open(
"c:\testexcel")excelfeuille = ExcelCla.sheets(
"feuil1")
Dim i
As
Integer
Doi = i + 1
Loop
Until excelfeuille.cells(i, 4).value <> 1excelfeuille.cells(i, 1).value = Now