[VBA] Comment remplir des textbox en série [Résolu]

Signaler
Messages postés
1274
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 avril 2020
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour,
je ne suis pas sur d'avoir choisi le bon thème
mais voila mon problème:

Je fais une application sous Excel 2002 en vba
et je n'arrive pas à remplir des texbox dans une boucle que voici:
For i = 1 To 4
Controls("TextBox" & i).Value =
Cells(i, 2).Value
Next

J'ai essayé aussi:
TextBox & i = Cells(i, 2).Value
en vain.

Quelqu'un peut-il m'aider SVP? Merci.

7 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Bonjour,

Les controls sont dans la collection OLEObjects de ta feuille

Dim ctrl As OLEObject
For i = 1 To 4
  Set ctrl = ActiveSheet.OLEObjects("TextBox" & i)
  ctrl.Object.Value = Cells(i, 2).Value
Next


_____________
Kenji
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Bonjour,
Tu ne développes donc pas sous :
Forum > VB.NET et VB 2005

qui n'a absolument rien à voir avec la section Langages dérivés > VBA, dans laquelle tu aurais du ouvrir la présente discussion
Veux-tu bien en prendre bonne note pour tes prochaines discussions VBA ?
C'est très important. La preuve ? ===>>
Sous VB.Net, tes textboxes se trouverait dans un container Form ou Panel.
Sous VBA, elle pourrait être également mise sur une feuille de calcul, hein !!!...
Il se trouve que le code montré ne peut que marcher, sous VBA/Excel, si les textboxes sont sur un UserForm.
Mais ce n'est pas la même syntaxe si sur une feuille de calcul.
Et tu ne nous a absolument rien dit quant à leur location ...


________________________
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
Messages postés
1274
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 avril 2020

Désolé pour mon intrusion dans la mauvaise rubrique. je prends note! Je n'avais pas trouvé la rubrique vba dans toutes ces rubriques, alors j'ai choisi au hasard.
Faut-il que je transfert mon poste immédiatement ?
Sinon, j'ai mis mes texbox sur 1 feuille excel.

merci.
Messages postés
1274
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 avril 2020

Bonjour très cher Charles Racaud,

Vous êtes mon héro! Merci beaucoup pour ce code que je cherche depuis 2 jours.

Merci à tous de votre aide!

Bonne soiré et bonnes vacances!
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Verux-tu bien cliquer sur le tag Réponse Acceptée (au niveau de la réponse de Charles Racaud) et ainsi libérer ce sujet ? Merci de respecter cette autre règle.


________________________
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
Messages postés
5
Date d'inscription
mardi 13 juillet 2010
Statut
Membre
Dernière intervention
30 octobre 2012

Bonjour,
j'ai un gros souci d'amateur vba je m'explique j'ai des colonnes qui correspond a des mois et des lignes a des actions courantes j'aimerais avec la méthode ListBox1.AddItem et Find afficher le nombre d'action selon le mois rechercher avec un textbox mon souci j'arrive a afficher le mois mais pas la plage de cellule just en dessous qui correspond au nombre d'action ci joint mon code
Quelqu'un peut-il m'aider SVP? Merci.

Private Sub CmdChercher_Click()
Dim fs As Worksheet
Dim Plage As Range, Cell As Range
Dim Recherche As String, Adresse As String
Dim Ligne As Variant
Dim C As Object
Dim i As Byte

ListBox1.Clear
Set fs = Sheets("SUIVI 2012")
Recherche = TextBox1
If Recherche = "" Then Exit Sub

For Each WS In Worksheets
Ligne = Worksheets(fs.Name).Range("" & "B" & "65536").End(xlUp).Row

Set Plage = Worksheets(fs.Name).Range("" & "B" & "1:" & "D" & Ligne)
With Plage
Set C = .Find(Recherche)
If Not C Is Nothing Then
Adresse = C.Address
i = 0
Do
ListBox1.AddItem "Ligne" & i
ListBox1.List(i, 0) = C.Value
ListBox1.List(i, 1) = C.Offset(0, 1).Value
ListBox1.List(i, 2) = C.Offset(0, 2).Value
ListBox1.List(i, 3) = C.Offset(0, 3).Value
ListBox1.List(i, 4) = C.Offset(0, 4).Value
i = i + 1
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> Adresse
ListBox1.ColumnWidths = "2cm" & ";" & "2cm" & ";" & "2cm"

End If
End With
Next WS
End Sub
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Il faudrait que tu ouvres un nouveau sujet dans la section VBA

Ce sujet ne concerne pas ta question et a déjà été répondu...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI