Lire plusieurs cellules d'excel et les mettres dans des label et text

zolan - 20 sept. 2012 à 10:37
 zolan - 20 sept. 2012 à 11:46
bonjour à tous et à toute !

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 !

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
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
d'accord merci, je vais retravailler tout ca!

le compteur: c'est parce que j'ai que 7 cellules a lire sur une ligne. c'est pour ne pas dépasser! faut pas faire comme ca?

sinon comment je peux faire pour activer la cellule demander prendre sa valeur et ensuite activer la suivante et prendre sa valeur?


Ps: je débute donc c'est un peu flou encore.
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 209
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
dac merci! je test tout ca...
Rejoignez-nous