Bonjour à tous, je suis coincé :
Je chercher à rendre ludique un énorme tableau d'excel en plusieurs pages de formulaire (userform). Dans un premier temps, on sélectionne dans une combobox un code particulier (la clé d'entrée pour chaque ligne différente). Ensuite, je voudrais que toutes mes textbox se remplissent automatiquement selon le code (la clé) choisi. Rien de compliqué c'est juste une condition, mais si je sais le faire pour une textbox, je ne sais pas le faire avec une boucle.
Aussi ma structure de tableau est simple.
- Textbox1 = colone 1
- textbox2 = colone 2
- jusqu'a 33.
Quelqu'un de gentil m'avait aider sur ce même sujet mais je bloque
voici mon code, je ne sais pas où est l'erreur. les textbox se remplissent mais pas correctement.
Merci de votre aide
--
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Private Sub CommandButton1_Click() Dim c As Range Dim Code As String 'Code: le contenu de TextBox1 qu'on va chercher sur la colonne A Code = Recherche.ComboBox1.Value 'Si Code est non vide If Code <> "" Then 'F1 sur la méthode Find (on cherche la valeur de Code dans la colonne A de notre feuille) 'c est la cellule de la colonne A contenant éventuellement la valeur du Code Set c = Worksheets("bdouvrages").Range("A:A").Find(Code, LookIn:=xlValues, lookat:=xlWhole) 'Si une cellule est trouvé (contenant la valeur de Code) c sera différente de rien If Not c Is Nothing Then 'On appelle la procédure de remplissage Remp des TextBox de Fiche en fonction de la ligne de la cellule trouvé (c.Row) Call Report(c.Row) 'On vide notre variable objet (Range) c Set c = Nothing End If End If End Sub 'Procédure de remplissage des TextBox de Fiche en fonction de (Lig)ne Private Sub Report(ByVal Lig As Long) Dim i As Byte With Worksheets("bdouvrages") FIO.TextBox1.Value = .Cells(Lig, 1).Value FIO.TextBox2.Value = .Cells(Lig, 2).Value 'On boucle sur les textbox de 3 à 33 'on remarque que le textbox d'index j est rempli par la contenu de la cellule Cells(Lig,j+2) For i = 3 To 33 FIO.Controls("TextBox" & i).Value = .Cells(Lig, i + 2) Next i End With 'pour montrer la fiche FIO.Show End Sub
Partager