IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comportement dynamique de boutons dans un tableau excel vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 11
    Par défaut Comportement dynamique de boutons dans un tableau excel vba
    Bonjour,

    J'ai une feuille excel qui se rempli dynamiquement de boutons pour former un tableau de boutons par le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For lig = 2 To Sheets("Var").Range("LiTab").Value + 1
        For col = 2 To Sheets("Var").Range("ColTab").Value
          ActiveSheet.Buttons.Add(Cells(lig, col).Left, Cells(lig, col).Top, Cells(lig, col).Width, Cells(lig, col).Height).Select
        Next col
    Next lig
    - J'aimerais que l'aspect de chaque bouton soit déterminé par l'état d'une cellule dans un autre tableau (par exemple fond du bouton et couleur du texte). Pour cela j'ai mis une condition dans la boucle, mais je n'arrive pas à faire le lien entre le bouton concerné et la condition.

    - J'aimerais également que l'action déclenchée par l'utilisation de chaque bouton prenne en compte la ligne et la colonne du bouton concerné.

    Je suis débutant en vba et je me noie un peu.

    Merci à tous

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    On va nommer les boutons d'une manière explicite btnB4 est le bouton contenu dans la cellule B4,btnC12-> cellule C12...
    un exemple à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Dim Btn As Object
    Dim Lig As Integer, Col As Integer
     
    For Lig = 2 To Sheets("Var").Range("LiTab").Value + 1
        For Col = 2 To Sheets("Var").Range("ColTab").Value
            With Cells(Lig, Col)
                On Error Resume Next
                ActiveSheet.Buttons("Btn" & .Address(0, 0)).Delete
                On Error GoTo 0
                Set Btn = ActiveSheet.Buttons.Add(.Left, .Top, .Width, .Height)
                Btn.Name = "Btn" & .Address(0, 0)
                Btn.Caption = "Bouton " & Lig - 1 & "." & Col - 1
                Btn.Font.ColorIndex = Lig
                Set Btn = Nothing
            End With
        Next Col
    Next Lig

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Février 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 517
    Par défaut
    salut

    C'est au moment même de la création, que tu dois agir.
    Je reprends ici l'exemple que je t'ai donné dans ton autre discussion et y ajoute une "modif"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 1 To 4
      ActiveSheet.Buttons.Add(Cells(1, i).Left, decal, Cells(1, i).Width, Cells(1, i).Height).Select
      Selection.Font.ColorIndex = Cells(1, i).Font.ColorIndex
    Next
    Dans cet exemple ; au moment de la création, je donne à la police du bouton la même couleur que celle de la police de la cellule.
    Il va de soi que tu peux, de la même manière (selon la même méthode) modifier d'autres propriétés de ton bouton (mais uniquement celles correspondant, bien évidemment, à des propriétés modifiables d'un bouton, hein)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 11
    Par défaut OnAction conditionnel ?
    Merci à tous les 2

    J'ai bien compris comment affecter les noms, mais je reste coincé sur la suite de l'opération, mais peut-être n'ai-je pas suffisamment extrapolé à partir des codes que vous m'avez envoyé.

    L'action qui doit être faite ensuite dépend de l'en-tête de ligne et de l'en-tête de colonne du bouton qui a été activé.

    Comment faire pour, dans la procédure qui suit le OnAction, repérer le bouton qui a été cliqué pour récupérer son en-tête de ligne et son en-tête de colonne ?

    Merci à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Extraire du texte d'un pdf et l'importer dans un tableau Excel (VBA)
    Par speedfree dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/12/2010, 09h03
  2. Réponses: 7
    Dernier message: 02/05/2006, 11h28
  3. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 10h03
  4. Insérer automatiquement des boutons dans des cellules excel
    Par Oaurelius dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/11/2005, 18h38
  5. Réponses: 2
    Dernier message: 31/08/2002, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo