![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: août 2007
Localisation: Varsovie/Pologne
Âge: 23
Messages: 57
|
Bonjour,
Rien trouvé dans le FAQ ni sur le forum donc voilà : J'ai ajouté une CommandBar et des boutons. Comme mes macros modifient l'état de mes boutons j'ai besoin de les appeler. Pour éviter tout problème d'indexage, je n'utilise pas l'index du bouton dans la barre mais je créé une "instance" dans ThisWorkbook. Première fois où j'utilise le bouton A pas de problème. Si je l'utilise une deuxième fois par contre avant même de rentrer dans le OnAction du bouton A cliqué, l'instance du bouton B se met à Nothing... J'ai débuggé jusqu'au bout du premier appel du au bouton A mais l'instance du bouton B est toujours normale. C'est au moment où je clique une deuxième fois sur bouton A que ça foire. Merci d'avance. Rag Dernière modification par Ragmaxone ; 09/10/2008 à 11h36 |
|
|
|
|
|
#2 (permalink) |
![]() |
Bonjour
Sans le code, c'est un peu comme jouer à Madame Soleil sans boule de cristal. Deux choses, toutefois: Tu peux utiliser la propriété Tag du bouton pour l'identifier. C'est une solution que j'emploie avec bonheur depuis longtemps. Lors du clic sur un bouton de barre de commande, on peut identifier le bouton sur lequel on a cliqué car il est renvoyé par Code :
commandbars.ActionControl
Code :
commandbars.ActionControl.Tag
__________________
Pierre Fauconnier -------------------- "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) Pensez au tag ![]() Mon blog sur DVP - Mes petits papiers sur DVP Je ne peux en aucun cas être tenu pour responsable des conséquences de l'utilisation des codes que je fournis dans le cadre des réponses apportées sur les forums, même s'il s'avérait que ces codes sont erronés ou amènent à des dysfonctionnements, de manière manifeste ou non. |
|
|
|
|
|
#3 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: août 2007
Localisation: Varsovie/Pologne
Âge: 23
Messages: 57
|
Lol, désolé pour le manque de code mais comme y'en a un roman... enfin voilà :
Code :
Public guzBar As CommandBar Public guzSel As CommandBarButton Private Sub Workbook_Activate() tmpAler = Application.DisplayAlerts tmpScre = Application.ScreenUpdating Set guzBar = Application.CommandBars.Add(Name:="guziki", Position:=msoBarBottom, Temporary:=True) With guzBar .Protection = msoBarNoMove + msoBarNoCustomize Set guzSel = .Controls.Add(Type:=msoControlButton) With guzSel .Style = msoButtonCaption .Caption = "Selekcja" If ActiveSheet.EnableSelection = xlNoSelection Then .State = msoButtonUp Else .State = msoButtonDown End If .OnAction = "ThisWorkbook.selekcja" End With End Sub Private Sub Workbook_Deactivate() Application.CommandBars("guziki").Delete Application.DisplayAlerts = tmpAler Application.ScreenUpdating = tmpScre End Sub Sub lanceForm() 'lance la procedure de recherche (ie affiche le form) Application.ScreenUpdating = False odzasuwa Load formKal formWyszuk.Show zasuwa guzSel.State = msoButtonUp Application.ScreenUpdating = True 'tmpScre wyniki.Range("a1").Select ActiveWindow.ScrollRow = 1 ActiveWindow.ScrollColumn = 1 End Sub Sub zasuwa() For Each ssheet In Sheets ssheet.Protect contents:=True, UserInterfaceOnly:=True ssheet.EnableSelection = xlNoSelection Next ssheet End Sub Sub odzasuwa() For Each ssheet In Sheets ssheet.Protect contents:=False Next ssheet End Sub Sub selekcja() With guzSel If .State = msoButtonUp Then .State = msoButtonDown For Each sheeet In ThisWorkbook.Sheets sheeet.EnableSelection = xlNoRestrictions Next sheeet Else .State = msoButtonUp For Each sheeet In ThisWorkbook.Sheets sheeet.EnableSelection = xlNoSelection Next sheeet End If End With End Sub Pour ce qui est du tag j'y pensais pu, trop entêté dans mon truc... Je teste l'histoire du tag mais j'aimerais bien savoir pourquoi cette variable est zapée... voilà, avec la définition du tag de chaque bouton et l'utilisation de Code :
Application.CommandBars("MaBarre").FindControl(Tag:="TagDeMonBouton") Je relance quand même pour ce qui est de la base du problème initial, une réponse me soulagerait... Merci Pierre. ![]() Rag Dernière modification par AlainTech ; 05/11/2008 à 15h12 |
|
|
|
|
|
#4 (permalink) | |
|
Invité régulier
![]() Date d'inscription: mai 2006
Localisation: Nantes
Âge: 23
Messages: 15
|
Citation:
|
|
|
|
|
|
![]() |
![]() |
||
ThisWorkbook.MaVar réinitialisée au click sur un bouton
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|