audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008
-
18 mars 2008 à 10:05
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008
-
18 mars 2008 à 12:15
bonjour,
j'ai un petit soucis que je n'arrive pas à résoudre et sur lequel je me suis penchée cette nuit sans résultats ! c'est pourquoi j'ai besoin de votre aide pour ne pas perdre la tête lol
voila mon pb:
je génére dynamiquement des boutons à partir d'un bouton qui va parcourir un tableau excel qui contient des données. chaque données correspond à des caractériqtiques du bouton et en fonction d'elles le bouton est généré de telle ou telle couleur.
mon souci est que j'aimerai que les bouton générés se place de la même facon que le contenu du tableau. c'est à dire que pour la L1 les boutons associés à cette ligne seront alignés sur le userform sur une ligne 1 .
mon problème et que je ne vois aps du tout comment coder cette histoire.
si quelqu'un peut m'éclairer se sera avec grand plaisir et soulagement surtout.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 18 mars 2008 à 11:16
a adapter...
Dim Bouton As CommandButton
Const EspaceX = 5 '# Espace horizontal entre deux boutons
Const EspaceY = 5 '# Espace vertical entre deux boutons
Const BaseX = 20 '# Coordonnée X du bouton en haut a gauche
Const BaseY = 20 '# Coordonnée Y du bouton en haut a gauche
Set Auto = New Classe2
For lig = 1 To 2
For col = 1 To 5
Set Bouton = AutoBe.Controls.Add("Forms.CommandButton.1", "Bouton" & lig & col, True)
With Bouton
.Left = (40 + EspaceX) * (lig - 1) + BaseX
.Top = (40 + EspaceY) * (col - 1) + BaseY
.Height = 40
.Width = 40
Select Case Cells(lig, col).Value
Case "base"
.BackColor = RGB(0, 255, 255)
Case "optionnel"
.BackColor = RGB(255, 0, 255)
Case "perso"
.BackColor = RGB(255, 255, 0)
End Select
End With
Auto.Add Bouton
Next col
Next lig, ----
By Renfield
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008 18 mars 2008 à 11:05
salut,
merci pour ta réponse si rapide !
ma boucle est comme ca : lig étant mes ligne du tab excel avec mes trois cas possible (du contenu des cellules tableau) : base, optionnel, perso
Dim Bouton As CommandButton
Set Auto = New Classe2 'collection de bouton AutoBe
For lig = 1 To 2
For col = 1 To 5
If Cells(lig, col).Value = "base" Then
deport = deport + 20 * deportinit
Set Bouton = AutoBe.Controls.Add("Forms.CommandButton.1", "Bouton" & lig & col, True)
MsgBox ("colbase" & col)
MsgBox ("ligbase" & lig)
MsgBox Bouton.Name
With Bouton
.Left = deportinit + deport
.Top = 10
.BackColor = RGB(0, 255, 255)
.Height = 40
.width = 40
End With
Auto.Add Bouton, col
End If
If Cells(lig, col).Value = "optionnel" Then
deport = deport + 20 * deportinit
Set Bouton = AutoBe.Controls.Add("Forms.CommandButton.1", "Bouton" & lig & col, True)
MsgBox ("coloptio" & col)
MsgBox ("ligoptio" & lig)
With Bouton
.Left = deportinit + deport
.Top = 20
.BackColor = RGB(255, 0, 255)
.Height = 40
.width = 40
End With
Auto.Add Bouton, col
End If
If Cells(lig, col).Value = "perso" Then
Set Bouton = AutoBe.Controls.Add("Forms.CommandButton.1", "Bouton" & lig & col, True)
MsgBox ("colperso" & col)
MsgBox ("ligperso" & lig)
With Bouton
.Left = deportinit + deport
.Top = 45
.BackColor = RGB(255, 255, 0)
.Height = 40
.width = 40
End With
Auto.Add Bouton, col
End If
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008 18 mars 2008 à 11:53
c'est bon j'ai trouvé en fait avec le code que tu m'as donné les bouton étaient à la verticale. et en changeant dans le left lig par col et le top l'inverse ca me met bien les boutons comme je souhaite.
encore merci pour tout, et ta gentillesse !
t'as mis peu de temps à résoudre mon pb alors que moi j'y suis depuis hier sans résultats lol ! j'ai encore du chemin à faire !!