Position bouton

Résolu
niny@ Messages postés 109 Date d'inscription   Statut Membre -  
niny@ Messages postés 109 Date d'inscription   Statut Membre -
Bonjour,

j'ai encore des soucis avec mes boutons :

mes boutons sont générés automatiquement à partir d'un bouton qui va parcourir un fichier excel dans lequel se trouve un tableau. ce tableau à un certains nombres de cases remplies avec des caractéristiques. suivant ces caractéristiques le bouton est de vouleur différente = ca c'est fait.

mon pb est que j'aimerai qu'en fonction de la ligne du tableau les boutons se place sur le userform en fonction de ce tableau.
c'est à dire si L1 posséde 4 boutons avec des caractéristiques différentes mais étant sur la L1 les mettrent sur la même rangée du userform.

pour l'instant je fais un truc qui me les mets tous les uns à la suite des autres et je ne sais pas comment faire pour changer celà.

est ce quelqu'un pourrait m'éclairer sur ce point ??

merci
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. amigo
     
    Re,

    If faut calculer leur postion à chaque création
    Admettons que tu veuilles placer 10 boutons et qu'une rangée ne puisse contenir plus de 3 boutons

    dh=20 ' décalage initial par rapport au bord gauche
    dv=20 ' décalage initial par rapport au haut de feuille
    ih=60 ' intervalle horizontal entre les points d'insertion de 2 boutons sur la meme rangée
    iv=30 ' intervalle vertical entre les points d'insertion de 2 boutons sur la meme colonne
    maxb=3 ' nbre maxi de boutons par rangées
    nb=10 ' nbre de boutons à placer

    ib=1 'indice bouton
    ir=0 'compteur de rangée
    'ic compteur de colonnes

    do
    for ic=0 to maxb-1
    if ib>nb then exit for
    left = dh+(ic*ih)
    top = dv+(ir*dv)
    'definir le bouton
    '
    '
    ib=ib+1
    next
    ir=ir+1
    loop until ib>nb

    Sauf erreur, cette procedure crée 3 rangées de trois boutons + i rangée de 1 bouton.

    Salut.
    0
    1. niny@ Messages postés 109 Date d'inscription   Statut Membre
       
      merci ,

      je vais essayer d ele mettre dans mon code , je te tiens au courant si j'ai un problème.

      merci @+
      0
      1. niny@ Messages postés 109 Date d'inscription   Statut Membre > niny@ Messages postés 109 Date d'inscription   Statut Membre
         
        en fiat j'avais fait un truc comme ca, mais mon pb vient de mes cas différents, ca m'embrouille !
        dsl te t'embeter autant, e n plus c'est pas la première fois que j'ai besoin de tes connaissances.

        je ne sais pas ou mettre els boucles dans mon code :

        Dim deport As Integer
        Dim inter As Integer
        deportinit = 4

        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

        Next col
        Next lig

        j'ai bien mais différents cas possible, mais le fait que ceux ci peuvent se trouver à n'importe quel endroit du tableau je ne vois pas ou mettre la boucle .
        0
      2. niny@ Messages postés 109 Date d'inscription   Statut Membre > niny@ Messages postés 109 Date d'inscription   Statut Membre
         
        en fait c'est bon du coup ,

        fallait juste faire des case avec un select pour améliorer le code et faire en sorte qu'il n'y est plus de problème avec la position des boutons !

        merci @µ+
        0