Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Ancrer/figer un userform sur une page excel

Attila451

XLDnaute Occasionnel
Bonjour,
J'avais l'habitude d'insèrer des boutons et d'y attacher des macros, du coup, en fonction du nombre de macro, j'avais autant de boutons que de macros. C'est un peu plus sexy en le faisant via un userform, par contre, je dois quand même attacher le userform à un bouton.
Est il possible de "coller" le userform directement sur une feuille excel ? Sans avoir à l'appeler ? Est il possible de l'ancrer à un endroit bien précis de la feuille excel ?

Le fichier sur lequel je travaille est confidentiel, je ne peux pas le joindre.
J'espère que ma demande est assez claire.
D'avance merci.
Cdlt
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Attila,
Peut être une autre approche en utilisant la macro événementielle Worksheet_SelectionChange. ( à voir ... )

Il suffit de cliquer sur une cellule pour lancer la macro correspondante, avec :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [B2]) Is Nothing Then
        Macro1
    ElseIf Not Intersect(Target, [C2]) Is Nothing Then
        Macro2
    .....
    ElseIf Not Intersect(Target, [C11]) Is Nothing Then
        Macro10
    End If
Fin:
End Sub
Voir PJ
 

Pièces jointes

  • Classeur2.xlsm
    15.9 KB · Affichages: 3

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous ,

Pour saluer @sylvanu , un code pour lancer les macros :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Target.Count > 1 Then Exit Sub
   If Not Intersect(Target, Range("B2,C3,B4,C5,B6,C7,B8,C9,B10,C11")) Is Nothing _
      Then Application.Run "macro" & Target.Row - 1
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Une autre approche simplissime est que la cellule cliquée contienne le nom de la macro.
On n'a donc plus besoin de toucher à Worksheet_SelectionChange en cas d'évolution :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    Application.Run Target.Value
Fin:
End Sub
 

Pièces jointes

  • Classeur2V2.xlsm
    15.5 KB · Affichages: 3

Discussions similaires

Réponses
3
Affichages
416
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…