[VBA] fonction click sur commandbutton
Fermé
Kino76
Messages postés
86
Date d'inscription
mardi 26 juillet 2011
Statut
Membre
Dernière intervention
15 décembre 2011
-
27 juil. 2011 à 22:18
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 29 juil. 2011 à 14:51
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 29 juil. 2011 à 14:51
Bonjour je voudrais savoir pourquoi la fonction permettant le clique sur un commandbutton ne reste pas sauvegarder et disparait a chaque fois que j'enregistre et ferme le classeur...?
J'ai essayer de la mettre dans un module ou dans un module de class rien n'y fait
J'ai essayer de la mettre dans un module ou dans un module de class rien n'y fait
A voir également:
- Commandbutton1_click()
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Auto mouse click - Télécharger - Divers Utilitaires
- Fonction filtre excel n'existe pas - Forum Excel
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
3 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
28 juil. 2011 à 10:57
28 juil. 2011 à 10:57
Bonjour,
Pourrais tu placer ici même le code de ta fonction?
Pourrais tu placer ici même le code de ta fonction?
Kino76
Messages postés
86
Date d'inscription
mardi 26 juillet 2011
Statut
Membre
Dernière intervention
15 décembre 2011
3
28 juil. 2011 à 11:02
28 juil. 2011 à 11:02
oui
Code de la creation du bouton
--------------------------------------------------------------------------------------
Public Function CreateButton()
Dim o As OLEObject
Worksheets("Principal").Select
Set o = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=100, Top:=150, Width:=80, Height:=30)
o.Select
Selection.Name = "ButtonInitFeuille"
o.Object.Caption = "Initialisation"
End Function
----------------------------------------------------------------------------------
la fonction principal qui l'appelle
----------------------------------------------------------------------------------
Sub InitFeuille()
Call CreateButton
End Sub
-----------------------------------------------------------------------------------
et la fonction du bouton que j'ai essayer de mettre soit dans le module en lui meme soit dans un module de class
-----------------------------------------------------------------------------------
Option Explicit
Public WithEvents ButtonInitFeuille As CommandButton
Private Sub ButtonInitFeuille_Click()
Call InitFeuilleTab
End Sub
--------------------------------------------------------------------------
avec ou sans les deux premiere lignes
Code de la creation du bouton
--------------------------------------------------------------------------------------
Public Function CreateButton()
Dim o As OLEObject
Worksheets("Principal").Select
Set o = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=100, Top:=150, Width:=80, Height:=30)
o.Select
Selection.Name = "ButtonInitFeuille"
o.Object.Caption = "Initialisation"
End Function
----------------------------------------------------------------------------------
la fonction principal qui l'appelle
----------------------------------------------------------------------------------
Sub InitFeuille()
Call CreateButton
End Sub
-----------------------------------------------------------------------------------
et la fonction du bouton que j'ai essayer de mettre soit dans le module en lui meme soit dans un module de class
-----------------------------------------------------------------------------------
Option Explicit
Public WithEvents ButtonInitFeuille As CommandButton
Private Sub ButtonInitFeuille_Click()
Call InitFeuilleTab
End Sub
--------------------------------------------------------------------------
avec ou sans les deux premiere lignes
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
28 juil. 2011 à 11:09
28 juil. 2011 à 11:09
Oui. Ok. Mais qu'elle fonction disparait???
Kino76
Messages postés
86
Date d'inscription
mardi 26 juillet 2011
Statut
Membre
Dernière intervention
15 décembre 2011
3
28 juil. 2011 à 11:13
28 juil. 2011 à 11:13
et bien la fonction pour le clic sur le bouton ne disparait pas mais reste inactif
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
28 juil. 2011 à 11:14
28 juil. 2011 à 11:14
Cette fonction en appelle une autre, nommée : InitFeuilleTab
Quel est le code de InitFeuilleTab?
Quel est le code de InitFeuilleTab?
Kino76
Messages postés
86
Date d'inscription
mardi 26 juillet 2011
Statut
Membre
Dernière intervention
15 décembre 2011
3
28 juil. 2011 à 11:16
28 juil. 2011 à 11:16
Public Function InitFeuilleTab()
Worksheets("***").Select
Range("A1:I1").Select
Selection.Merge
End Function
Worksheets("***").Select
Range("A1:I1").Select
Selection.Merge
End Function
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
28 juil. 2011 à 11:33
28 juil. 2011 à 11:33
Bon. Ton souci ne vient aucunement de tes fonctions. En fait, il faut attribuer ta classe (le code du module de classe) à ton bouton. Pour cela, il convient de modifier le code de la fonction CreateButton().
Tout ça pour fusionner quelques cellules?
Tu dis...
Tout ça pour fusionner quelques cellules?
Tu dis...
Kino76
Messages postés
86
Date d'inscription
mardi 26 juillet 2011
Statut
Membre
Dernière intervention
15 décembre 2011
3
28 juil. 2011 à 16:03
28 juil. 2011 à 16:03
Module 1
-----------------------------------------------------------------------------
Dim Bouton() As New Classe1
Sub InitBoutons()
Dim cpt As Integer
Dim oleObj As OLEObject
For Each oleObj In ActiveSheet.OLEObjects
If Left(oleObj.Name, 17) = "ButtonInitFeuille" Then
cpt = cpt + 1
ReDim Preserve Bouton(1 To cpt)
Set Bouton(cpt).ButtonInitFeuille = oleObj.Object
End If
Next
End Sub
Sub CreateButton()
Dim o As OLEObject
Worksheets("Feuil1").Select
Set o = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=100, Top:=150, Width:=80, Height:=30)
o.Select
Selection.Name = "ButtonInitFeuille" & ActiveSheet.OLEObjects.Count
o.Object.Caption = "Initialisation" & ActiveSheet.OLEObjects.Count
End Sub
Public Function InitFeuillTab()
MsgBox "Sa fonction"
End Function
-------------------------------------------------------------------------
Class 1
---------------------------------------------------------------------------
Option Explicit
Public WithEvents ButtonInitFeuille As CommandButton
Private Sub ButtonInitFeuille_Click()
Call InitFeuilleTab
End Sub
----------------------------------------------------------------------------
thisworkbook
---------------------------------------------------------------------------
Private Sub Workbook_Open()
Call InitBoutons
End Sub
---------------------------------------------------------------------------
-----------------------------------------------------------------------------
Dim Bouton() As New Classe1
Sub InitBoutons()
Dim cpt As Integer
Dim oleObj As OLEObject
For Each oleObj In ActiveSheet.OLEObjects
If Left(oleObj.Name, 17) = "ButtonInitFeuille" Then
cpt = cpt + 1
ReDim Preserve Bouton(1 To cpt)
Set Bouton(cpt).ButtonInitFeuille = oleObj.Object
End If
Next
End Sub
Sub CreateButton()
Dim o As OLEObject
Worksheets("Feuil1").Select
Set o = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=100, Top:=150, Width:=80, Height:=30)
o.Select
Selection.Name = "ButtonInitFeuille" & ActiveSheet.OLEObjects.Count
o.Object.Caption = "Initialisation" & ActiveSheet.OLEObjects.Count
End Sub
Public Function InitFeuillTab()
MsgBox "Sa fonction"
End Function
-------------------------------------------------------------------------
Class 1
---------------------------------------------------------------------------
Option Explicit
Public WithEvents ButtonInitFeuille As CommandButton
Private Sub ButtonInitFeuille_Click()
Call InitFeuilleTab
End Sub
----------------------------------------------------------------------------
thisworkbook
---------------------------------------------------------------------------
Private Sub Workbook_Open()
Call InitBoutons
End Sub
---------------------------------------------------------------------------
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
28 juil. 2011 à 16:20
28 juil. 2011 à 16:20
Essaye ce test :
Sub test() Dim cpt As Integer Dim oleObj As OLEObject For Each oleObj In ActiveSheet.OLEObjects If Left(oleObj.Name, 17) = "ButtonInitFeuille" Then MsgBox oleObj.Object & " " & oleObj.Name End If Next End Sub
Kino76
Messages postés
86
Date d'inscription
mardi 26 juillet 2011
Statut
Membre
Dernière intervention
15 décembre 2011
3
28 juil. 2011 à 16:23
28 juil. 2011 à 16:23
et je met sa ou?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
Modifié par pijaku le 28/07/2011 à 16:24
Modifié par pijaku le 28/07/2011 à 16:24
dans le module 1. Ca n'est qu'un test...
Kino76
Messages postés
86
Date d'inscription
mardi 26 juillet 2011
Statut
Membre
Dernière intervention
15 décembre 2011
3
28 juil. 2011 à 16:25
28 juil. 2011 à 16:25
il ne peut pas faire le test vu qu'il ne veut meme pas crée le bouton
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
28 juil. 2011 à 16:31
28 juil. 2011 à 16:31
Tu n'as pas de boutons sur ta feuille???????????????
Depuis tout à l'heure, tu me dis que le problème vient de InitButton??????????
Si tu n'as pas de bouton sur ta feuille comment veux tu les initialiser??????
SCROGNEUGNEU!!!!!!!!!
Ta macro CreateButton fonctionne t'elle?
S'agit-il de la feuille "Feuil1" ou "principale"? en conséquence, adapter : Worksheets("Feuil1").Select
Tu dis..... Grrrrrrrrr!!!!!!!!
Depuis tout à l'heure, tu me dis que le problème vient de InitButton??????????
Si tu n'as pas de bouton sur ta feuille comment veux tu les initialiser??????
SCROGNEUGNEU!!!!!!!!!
Ta macro CreateButton fonctionne t'elle?
S'agit-il de la feuille "Feuil1" ou "principale"? en conséquence, adapter : Worksheets("Feuil1").Select
Tu dis..... Grrrrrrrrr!!!!!!!!