je me tourne vers vous, car je suis en difficulté étant débutant de VB depuis 2jours et ne connaissant pas grand chose à la programmation.
voilà, mon sujet porte sur le fait que je dois lire des cellules sous excel après un clic sur "lecture" (bouton sous l'interface VB) et mettre les valeurs dans leurs Label respectif et mettre ces même valeurs dans des Text aussi!
je suppose qu'il faut utiliser une boucle pour éviter toute une page de code et je vous propose ma réflexion qui ne marche pas -_-"
Private Sub lecture_Click()
x.Workbooks.Open FileName:=("C:\Documents and Settings\seidpu\Mes documents\Copie de TCP ModBus Espadon TC1 01 test\EXO1.xls")
colHeader = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K")
x.Sheets("Feuil1").Select
x.ActiveWindow.SelectedSheets.Delete
x.Sheets.Add
x.Sheets("Feuil1").Select
IndexColone = 4 'depart du tableau a 4 colonnes
IndexLigne = 10 + numero.Text 'depart du tableau a 10 lignes
Label9.Caption = numero.Text
Label17.Caption = numero.Text
compteur = 0
Do While compteur < 8
compteur = compteur + 1
x.Range(colHeader(IndexColone) & IndexLigne).Select
For i = 1 To 7
Form1.Controls("Label" & i).Caption = x.ActiveCell.FormulaR1C1
Next i
For j = 10 To 16
Form1.Controls("Text" & j).Caption = x.ActiveCell.FormulaR1C1
Next j
Loop
x.ActiveWorkbook.Save
x.ActiveWorkbook.Close
End Sub
voila et je bloque sur les deux "FOR" pour passer du Label1 à 7 et sur text10 à 16 !!
merci de vos conseils et remarques, à bientôt !
A voir également:
Lire plusieurs cellules d'excel et les mettres dans des label et text
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 20 sept. 2012 à 11:04
Bonjour,
Il te faut commencer par raisonner :
Des points de réflexion :
1) supprimer une feuille pour la recréer équivaut tout bêtement à effacer ce qu'elle contient (oyuvre ton aide VBA sur ClearContents) !
2) travailler à coups de select, activate, etc ... n'est pas une bonne méthode (elle est lourde et ralentit tout). En VBA, on travaille directement avec les objets de Excel. Ainsi (exemple, hein ...) :
Sheets("toto").select
range("B3").Select
titi = activecell.value
s'exprime simplement par :
titi = Sheets("toto").range("B3").Value
3) à quoi diable te sert ta variable compteur ?
4) je ne vois par contre nulle part évoluer dans ton code les variables IndexColone et IndexLigne
Commence s'il te plait à raisonner calmement sur ces bases de réflexion....
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 20 sept. 2012 à 11:40
Commence par essayer.
Et par lire ton aide VBA, s'il te plait.
Existe par exemple (je dis bien par exemple et entre autres ...) Offset.
Tu n'as d'ailleurs même pas besoin de Offset, puisque tu passes d'une cellule cells(x,y) à une cellule cells(x,y1) en incrémentant dans une boucle for to next la valeur de y (et celà : faire varier la valeur d'une variable dans une boucle, c'est vraiment le B.A.BA) ...
Il te faut t'y mettre séroieusement, si tu veux avancer.
Et je t'ai déjà dit que l'on n'avait pas à "activer" une cellule, pour travailler avec VBA (et t'ai montré comment travailler directement avec les objets de Excel) !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ