audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008
-
11 mars 2008 à 15:37
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008
-
13 mars 2008 à 17:18
bonjour,
mon envirronnement est excel VBA (2003)
je cherche à savoir comment déclarer un bouton de facon dynamique, car pour l'instant j'ai qu'un bouton qui fait appel à une fonction mais par la suite je risque d'en avoir plusieurs qui récupere la même chose mais sur eux. par exemple quand je clique sur un choix du treeview, le nom du choix + id est envoyé au bouton. par la suite les autres boutons feront la même chose mais recevront une info différente comment faire ? j'ai trouvé des codes différents sur le net mais rien ne m'a éclairci.
de plus je ne sais aps comment faire pour que sur mon treeview je puisse cocher seulement un choix et non pas plusieurs est ce possible ?
merci pour votre aide car depuis hier je suis là dessus et je n'avance pas c'est horrible !!!
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008 13 mars 2008 à 17:18
c'est bon j'ai trouvé d'où vient mon problème : c'est vriament idiot et c'est le genre de truc qui fait perdre son temps alors pour ceux qui auront le même problèeme que moi : il suffisait de mettre la ligne : Auto.Add Bouton, k dans la boucle.
voici le nouveau code avec le décalage qu'il faut et 4 boutons qui ont les même caractéristiques :
Set Auto = New Classe2 'collection de bouton AutoBe
Dim k As Integer
Dim deport As Integer
Dim inter As Integer
Dim i As Integer
deportinit = 5
inter = 5
k = 3
i = 3
For i = 3 To 7
While k <> 7
k = k + 1
deport = deport + 20 * deportinit
Set Bouton = AutoBe.Controls.Add("Forms.CommandButton.1", "Bouton" & k, True)
With Bouton
.Left = deportinit + deport
.Top = 12
End With
i = i + 1
Auto.Add Bouton, k //la fameuse ligne pour que tous les boutons possèdent les mêmes caractéristiques
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201313 11 mars 2008 à 20:55
Salut,
c'est d'autant plus horrible que tu n'es pas dans le bon theme !... ben si !...
Tu aurais du poster ici : [infomsg.aspx Thèmes] / [infomsgf_VISUAL-BASIC_1.aspx Visual Basic 6] / [infomsgt_LANGAGES-DERIVES_287.aspx Langages dérivés] / [infomsgt_VBA_244.aspx VBA] /
Ceci etant dit, je dois dire que ton explication n'est pas tres claire.
je commence par la partie la plus simple c'est a dire ta derniere question :
oui : ListView1.MultiSelect = False
pour la suite j'attend tes precisions. Un bout de code serait le bienvenu.
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008 12 mars 2008 à 15:13
dsl de ne pas avoir poster cette question au bon endroit à vrai dire je savais aps où la mettre ! et merci de répondre à mon problème
pour mes boutons dynamiques j'ai trouvé. j'arrive à en créer à partir d'un bouton et en faisant appel à des modules de classe qui me permet de créer des boutons correspondant au type objet prédéfinis.
mon pb est que je ne sais pas comment faire pour que mes boutons dynamiques créés dans une boucle ne se positionne pas au même endroit j'ai essayer un truc comme ca mais il manque quelque chose.
Set Auto = New Classe2 'collection de bouton AutoBe
Dim k As Integer
Dim deport As Integer
Dim inter As Integer
deport = 12
inter = 12
k = 3
While k <> 4
k = k + 1
Set Bouton = AutoBe.Controls.Add("Forms.CommandButton.1", "Bouton" & k, True)
With Bouton
.Caption = AutoBe.nom_bouton
.Left = (inter * (k - 1)) + deport
.Top = 12
End With
Wend
Auto.Add Bouton, k
si tu vois mon problème je serais ravie !!! lol
pour le treeview ca marche pas, j'avais regardé toutes les propriétés même
singlsel = true et rien ne marche.
"ListView1.MultiSelect = False " non plus
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008 13 mars 2008 à 14:34
j'ai trouvé !
j'ai fait des modif pour que les boutons n'aillent pas au même endroit :
Dim k As Integer
Dim deport As Integer
Dim inter As Integer
deport = 5
inter = 5
k = 3
If k <> 5 Then
k = k + 1
deport = deport + 4 * deport
Set Bouton = AutoBe.Controls.Add("Forms.CommandButton.1", "Bouton" & k, True)
With Bouton
.Left = (inter * (k - 1)) + deport
.Top = 12
End With
End If
mais now j'ai un autre pb du coup! car en se décallant, les boutons ne prennent pas tous les fonctionnalités que je leur avait attribué. c'est à dire qu'ils sont censé ouvrir un userform (treeview) sur lequel je fais un choix. le nom de ce choix va sur le bouton cliqué. hors en faisant mon décallage ben now je peux cliquer que sur le dernier bouton cliqué.
vois tu d'où peut venir mon pb ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201313 13 mars 2008 à 15:56
Salut,
désolé je n'ais pas beaucoup de temps a consacrer a ce forum en ce moment. Pas mal de boulot et un 8ieme business trips (depuis fevrier 2007) en Chine en preparation. Des que j'ai un moment je me penche sur vos probleme