begin process at 2012 02 15 12:49:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Control(i).Caption


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Control(i).Caption

lundi 19 janvier 2009 à 00:07:47 | Control(i).Caption

JLuc01

Bonjour,

Je cherche a transformer un code complique en quelquechose de plus simple si c'est toutefois possible.
(en VBA sur feuille Excel)

Ce code ci-dessous marche, mais pour beaucoup de control (dans ce cas un checkbox), c'est un peu lourd.
        Form1.CheckBox1.Caption = Sheet4.Cells(5, 2).Value
        Form1.CheckBox2.Caption = Sheet4.Cells(6, 2).Value
        Form1.CheckBox3.Caption = Sheet4.Cells(7, 2).Value
         ...
Je voudrais quelquechose comme ci-dessous:
For i = 1 To 30
        Form1.CheckBox(i).Caption = Sheet4.Cells(5+i, 2).Value
Next i

Mais a ce niveau, je suis un peu perdu: toute suggestion est la bienvenue.
Si vous avez un bout de code ou simplement une direction ou chercher, je serais content.
Merci,

JLuc01
NB.J'ai chercher un peu sur le forum, mais sans resultats: mon probleme, c'est chercher quoi, quel mot cle...
lundi 19 janvier 2009 à 00:57:12 | Re : Control(i).Caption

gnieark

Membre Club
Bonsoir

J'ai un petit doutte sur la faisabilité en VBA, mais en VB6 la solution était de créer dynamiquement les controles.

La manipulation est de créer un checkbox, et de lui mettre 0 à la propriété index

ensuite un truc du genre:

for i = 1 to 30
load toncheckbox(i)
set toncheckbox(i).container = me
with toncheckbox(i)
.caption = Sheet4.Cells(5+i, 2).Value
.top = i* 400 + 100
.left =0
.visible = true
end with
next i

Bon courage!
lundi 19 janvier 2009 à 08:30:44 | Re : Control(i).Caption

jmf0

Membre Club
Réponse acceptée !
Bonjour,

Utilise la collection Controls (lis-là dans ton aide en ligne) pour arriver à ce qui ressemble ) ceci :

  for i = 1 to 30
        Form1.Controls("CheckBox" & i)..Caption = Sheet4.Cells(4 + i ,2).Value
  next

Le fait, maintenant, que tu utilises le mot Form1 me donne à penser que tu as "pêché" un code VB6.
Si ton code est sur un userform de VBA, ne mets pas Form1.Controls, mais directement Controls("....).Caption
lundi 19 janvier 2009 à 15:59:24 | Re : Control(i).Caption

JLuc01

Merci a tout les deux pour vos reponses.

En fait, mes CheckBox sont deja sur le UserForm. Je suppose que le code de gnieark construit les CheckBoxes sur le UserForm.

La reponse de jmf0 correspond mieux a mon probleme.

Le code suivant marche parfaitement:

Option Explicit
Dim CheckBox As New Control
Dim i As Integer
Sub Workbook_Open()
    For i = 1 To 14
        ufmSelection.Controls("CheckBox" & i).Caption = Sheet4.Cells(4 + i, 2).Value
    Next i
End Sub

J'avoue ne pas tout comprendre, mais je dois surement lire plus attentivement l'aide sur Collection Controls.
Par exemple, pourquoi je dois mettre un s au deuxieme mot Control et pourquoi je dois utiliser CheckBox et non MyCheckBox par exemple. C'est pas completement clair.

Merci de nouveau,
JLuc01
lundi 19 janvier 2009 à 18:47:26 | Re : Control(i).Caption

jmf0

Membre Club
RE, donc,

La collection Controls est une collection des contrôles présents surt ton userform. Controls (avec un s) donc, est le nom donnée par VBA à cette collection. (ouvre ton aide en ligne sur le mot Controls - collection).
Je ne vois pas l'utilité de
 Dim CheckBox As New Control
Personne ne t'oblige enfin à nommer d'une manière pluttôt que de l'autre !
Ainsi, donc, par exemple :
Controls("titi" & "2") se réfère au contrôle nommé titi2, quel qu'il soit (checkbox ou non)
Controls("toto" & n) se réfère donc au contrôle nommé toto1 (si n = 1), toto2 (si n =2), etc...
Pour résumer : ouvre donc ton aide en ligne et lit ce qui y est dit à propos de la collection Controls.
lundi 19 janvier 2009 à 21:32:56 | Re : Control(i).Caption

JLuc01

OK. Je crois que je comprends mieux le probleme.
Effectivement, la ligne Dim CheckBox As New Control ne sert a rien.

Merci encore,
JLuc01


Cette discussion est classée dans : caption, control, cells, form1, sheet4


Répondre à ce message

Sujets en rapport avec ce message

je prends un abonnement... Fenetres filles aléatoires (hard je pense) [ par daerlnaxe ] bon... deja je veux savoir si c possible, parceque ca fait 3H que je suis dessus sans rien avoir de probant... Ensuite je voudrais savoir si ca sera f probleme compter combien de chaines de 16 chiffres y a dans un texte [ par arnohoho ] 'voila je veux sauver un une chaine de 16 chiffre pas plus ni'moins donc mon code verifie le comptenu chaque fois qu'il'rancontre un chiffre il la sto DataReport [ par amer_ezahir ] salut à tous ; svp j'ai un problème avec une datareport; je veux y afficher des informations à partir des zones de textes situé dans une form(form1); Traduction pb callbyname [ par azghamoth ] Bonjour, voilà mon problème: Je souhaite effectuer  la traduction d'un logiciel de la façon suivante. On lit un fichier *.lng comme ci dessous: Ex Transfert de donnee d'un form a un autre [ par chitnight ] bonjour,j'ai un projet a faire pour les cours, j'ai choisi de faire un feuille de personnage type jeu de role.j'ai donc 2 form. le 1er affiche la fich Menu CommandBar dans Classeur unique [ par chtebel ] Bonjour tout le monde,Je crée un Menu dans excel en vba mais celui ci-est alors disponible dans tous les classeurs excel.Inseré a louverture du classe récupération de données d'une sheet excel dans un lable [ par patrev ] BonjourVoilà j'ai un problème.Je veux récupérer sur une feuille excel dans une cellule la donnée qui si trouve par rapport à une entrée d'une textbox. récupération de donnée excel dans un label URGENT HELP ME. [ par patrev ] j'explique mon problèmeSur la feuil1 d'excel en colonne 15 dans la cellule de la premiere ligne je copie la textbox5 et en colonne 16 se trouve une re ERREUR : Argument ou appel de procedure incorrect || URGENT :| [ par ukos ] Donc sur le clik de ce bouton le formulaire "Form_ETAPE2_imprime" doit apparaitre et celui en cour disparait. Mon code Private Sub CommandButton1_Cl question à la con auquel j'ai pas trouvé de titre, dsl [ par veler ] salut, une question conne et simple et malheureusement, j'ai perdue le tuyaux et j'arrive pas à retrouver le bout, vla, j'ai un control utilisateur da


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,028 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales