Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRÉATION D'UNE COMMANDBUTTON LORS D'UN CLICK (À LA VOLÉE) ET Y SCOTCHER UN ÉVÉNEMENT CLICK (DONC UNE MACRO) : CLASS WITHEVENT COMMANDBUTTON CLICK


Information sur la source

Catégorie :Control Classé sous : commandbutton, events, msforms, class, excel Niveau : Débutant Date de création : 02/02/2007 Vu : 4 452

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Code simplifier permettant de créer un bouton de commande lors d'un événement dans une feuille Excel (click sur une certaine cellule)
et coller à ce bouton une fonction personnalisée
delete du bouton une fois la fonction appliquée.

la fonction pour l'instant n'est que de retourner l'adresse de la cellule que l'on a cliqué ...
 

Source

  • ' dans le thisworbook :
  • ' lors du click_droit dans une cellule, si elle contient le mot "coucou"
  • Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal target As Range, Cancel As Boolean)
  • If InStr(1, target.formulalocal, "coucou") > 0 Then
  • Sh.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
  • , DisplayAsIcon:=False, Left:=target.Left, Top:=target.Top + target.Height, _
  • Width:=target.Width, Height:=target.Height * 2).Name = "temp"
  • Addcommand target.AddressLocal
  • Cancel = True
  • End If
  • End If
  • End Sub
  • Sub Addcommand (ByVal ref As String)
  • Dim tmpbutton As OLEObject
  • Set Gbutton = New class_bulle
  • Gbutton.rge = ref
  • Set Gbutton.Buttn = ActiveSheet.OLEObjects("temp").Object
  • End Sub
  • '---------------------------------------------------------------------------------------------
  • ' Dans un module de classe : (class_bulle)
  • '---------------------------------------------------------------------------------------------
  • Private WithEvents Butt As MSForms.CommandButton
  • Private addres As String
  • Property Set Buttn(oButton As MSForms.CommandButton)
  • Set Butt = oButton
  • Butt.Caption = "Insérer la Valeur par Defaut.."
  • Butt.BackColor = 10079487
  • End Property
  • Property Get Buttn() As MSForms.CommandButton
  • Set Buttn = Butt
  • End Property
  • Public Property Let rge(rg As String)
  • addres = rg
  • End Property
  • Public Property Get rge() As String
  • rge = addres
  • End Property
  • Private Sub Butt_Click()
  • MsgBox "add : " & addres
  • ActiveSheet.Shapes("temp").delete
  • End Sub
' dans le thisworbook :
' lors du click_droit dans une cellule, si elle contient le mot "coucou"

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal target As Range, Cancel As Boolean)
      If InStr(1, target.formulalocal, "coucou") > 0 Then
            Sh.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
                                                                        , DisplayAsIcon:=False, Left:=target.Left, Top:=target.Top + target.Height, _
                              Width:=target.Width, Height:=target.Height * 2).Name = "temp"
            Addcommand target.AddressLocal
            Cancel = True
        End If
    End If
End Sub
Sub Addcommand (ByVal ref As String)
    Dim tmpbutton As OLEObject
    Set Gbutton = New class_bulle
    Gbutton.rge = ref
    Set Gbutton.Buttn = ActiveSheet.OLEObjects("temp").Object
End Sub
'---------------------------------------------------------------------------------------------
' Dans un module de classe : (class_bulle)
'---------------------------------------------------------------------------------------------
Private WithEvents Butt As MSForms.CommandButton
Private addres As String

Property Set Buttn(oButton As MSForms.CommandButton)
    Set Butt = oButton
    Butt.Caption = "Insérer la Valeur par Defaut.."
    Butt.BackColor = 10079487
End Property

Property Get Buttn() As MSForms.CommandButton
    Set Buttn = Butt
End Property

Public Property Let rge(rg As String)
    addres = rg
End Property

Public Property Get rge() As String
   rge = addres
End Property

Private Sub Butt_Click()
    MsgBox "add : " & addres
    ActiveSheet.Shapes("temp").delete
End Sub

Conclusion


C'est tout, j'espère que cela vous sera pratique, vu le temps que j'ai mis à ne pas trouver d'info sur le net ....
 

Commentaires et avis

signaler à un administrateur
Commentaire de hvb le 05/02/2007 10:31:30

ce n'est pas du .Net ça

signaler à un administrateur
Commentaire de Renfield le 05/02/2007 11:12:04 administrateur CS

Effectivement... flag corrigé.

etniqs > Merci d'être vigilant la prochaine fois

signaler à un administrateur
Commentaire de us_30 le 07/02/2007 09:58:06

Bonjour,

10/10 pour ma part. Ce code me donne un support pour une futur dépassement de limitation d'Excel...

Merci.
Amicalement,
Us.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

évènement dynamique pour commandbutton excel vba [ par vousvous ] salut !j'ai réussi à créer des commandbuttons dynamiquement sous excel vba mais je ne sais pas comment leur attribuer un évènement. Comment faut-il fa Changer de classeur en VB dans Excel [ par drouault ] Bonjour, j'ai besoin de me déplacer dans deux classeurs pour réaliser des opérations.J'ai déclaré ces deux classeurss par : P Créer CommandButton dans feuille Excel (VBA) [ par BeebopMcFly ] Bonjour, J'ai un menu en vba dans un form "Menu" assez classique. Je voudrais ceci : - Lorsque l'utilisateur choisit "Saisir de nouvelle valeur" Déclenchement d'events [ par aydendeliadon ] Bonjour à tous, Voilà après quelques heures de recherche sur les events je suis parvenu à faire ceci: 'on crée une class pour les modifications Ouvrir un fichier Excel avec CommandButton Word [ par vbadebutant ] J'ai crée un document Word dans lequel il y a plusieurs CommandButton. En cliquant sur ceux-ci j'ouvre différents fichiers. Pour ouvrir un autre fichi OBJECT VBA EXCEL = CLASS C++ [ par fx_forum ] Bonjour,Pour eclaircir et accellerer un code VBA EXCEL, je veux sous-traiter une partie des operations a une DLL.La DLL est ecrite en C+ avec Dev-C++ Exporter une valeur excel dans word [ par PPN83 ] BonjourJ'ai crée à partir d'un formulaire, une base de données dans excel sous la forme d'un tableau . La première colonne correspond à un matricule. EMPLOI DU TEMPS SUR EXCEL [ par bouly59000 ] Bonjour à toute la communauté vbfrance !Je viens de m'inscrire et déja un gros problème se pose...Je dois réaliser un emploi du temps sur excel qui do [VBA Excel] Fusion [ par swan94 ] Salut à tous,J'ai un problème en VBA Excel. En effet, j'ai sur la colonne A du texte écrit toutes les 3 lignes et j'aurais voulu pouvoir fusionner sur Vb.net Mise en page feuille excel [ par fab2503 ] Bonjour à tous, J'essaie désespérement de régler la mise en page d'une feuille excel en utilisant vb.net mais lorsque j'insére dans mon code  : feui


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,39 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.