Bouton qui s'auto-détruit
Résolu
siamens_duj
Messages postés
192
Date d'inscription
Statut
Membre
Dernière intervention
-
siamens_duj Messages postés 192 Date d'inscription Statut Membre Dernière intervention -
siamens_duj Messages postés 192 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un bouton "Rechercher" qui, quand je clic dessus, m'ouvre une InputBox.
Cette inputBox me pose une question ( par exemple "Entrer un nom"), quand je rentre la réponse (par exemple Dupont), toutes les lignes de mon tableau ayant dans le champ "Nom" le nom "Dupont" se colorie en bleu et un bouton "Arrêter" apparaît.
J'aimerais que ce bouton recolorie en blanc les cases qui se sont mises en bleu et s'auto - détruit une fois que cela est fait.
Ce bouton (un buttons.add) sert en fait à annuler la macro "Rechercher".
Savez - vous comment je pourrais procéder ?
Merci.
Je vous met un extrait de mon code pour mieux comprendre :
Ce qui me pose problème est que je ne sais pas où coder.
Dans la macro où j'ai créé le bouton ou dans une nouvelle macro Private Sub Button1_Click() ?
J'ai un bouton "Rechercher" qui, quand je clic dessus, m'ouvre une InputBox.
Cette inputBox me pose une question ( par exemple "Entrer un nom"), quand je rentre la réponse (par exemple Dupont), toutes les lignes de mon tableau ayant dans le champ "Nom" le nom "Dupont" se colorie en bleu et un bouton "Arrêter" apparaît.
J'aimerais que ce bouton recolorie en blanc les cases qui se sont mises en bleu et s'auto - détruit une fois que cela est fait.
Ce bouton (un buttons.add) sert en fait à annuler la macro "Rechercher".
Savez - vous comment je pourrais procéder ?
Merci.
Je vous met un extrait de mon code pour mieux comprendre :
If Reference = Cells(i, 4).Value Then 'Reference est le nom de ma variable pour InputBox
Cells(i, 4).EntireRow.Interior.Color = RGB(174, 240, 194)
ActiveSheet.Buttons.Add(BLeft, BTop, BWidth, BHeight).Select
BTop = BTop + 11.25 ' Ajoute le bouton
Buttons.Caption = "Arrêter" 'Renomme le bouton "Arrêter"
End If
Ce qui me pose problème est que je ne sais pas où coder.
Dans la macro où j'ai créé le bouton ou dans une nouvelle macro Private Sub Button1_Click() ?
A voir également:
- Bouton qui s'auto-détruit
- Diagnostic bouton photo - Accueil - Outils
- Bouton reinitialisation pc - Guide
- Bouton on/off comment savoir ✓ - Forum Matériel & Système
- Symbole arrêt marche - Forum Word
- Réinitialiser chromecast sans bouton - Guide
3 réponses
Bonjour,
Inserer un module avec ce code à adapter:
Et pour lancer les macros:
Inserer un module avec ce code à adapter:
Option Explicit Public Const NomBouton$ = "MonBouton" Sub CreeBoutonFeuilleEtCode() Dim Btn As OLEObject, VbCodeMod As Object Dim i&, Code$ 'le bouton Set Btn = ActiveSheet.OLEObjects.Add _ (ClassType:="Forms.CommandButton.1") ' i = ActiveSheet.OLEObjects.Count With Btn .Object.Caption = "Test bouton " & i .Object.Font.Bold = True .Top = ActiveCell(1, 2).Top .Left = ActiveCell(1, 2).Left .Name = NomBouton & i .Visible = True .Width = 150 End With 'son code Set VbCodeMod = ActiveWorkbook.VBProject. _ VBComponents(Btn.Parent.CodeName).CodeModule Code = "Private Sub " & Btn.Name & "_Click()" & vbLf Code = Code & " MsgBox ""Test réussi : " & Btn.Name & "" & vbLf Code = Code & " ActiveCell.Select" & vbLf Code = Code & "End Sub" VbCodeMod.AddFromString Code End Sub 'fs Sub NettoieBoutonEtCode() Dim NomBtn$, Shp As OLEObject, Sht As Worksheet Dim Deb, NbLi As Integer For Each Sht In ActiveWorkbook.Sheets For Each Shp In Sht.OLEObjects NomBtn = Shp.Name If Left(NomBtn, 9) = NomBouton Then Shp.Delete With ActiveWorkbook.VBProject. _ VBComponents(Sht.CodeName).CodeModule Deb = .ProcStartLine(NomBtn & "_Click", 0) NbLi = .ProcCountLines(NomBtn & "_Click", 0) .DeleteLines Deb, NbLi End With End If Next Shp Next Sht End Sub
Et pour lancer les macros:
Private Sub CommandButton1_Click() CreeBoutonFeuilleEtCode End Sub Private Sub CommandButton2_Click() NettoieBoutonEtCode End Sub
Sinon j'avais pensé faire un lien vers le sub du nouveau bouton "Arrêter" dans la création du bouton.
Comme ceci :
Puis dans le Sub du bouton "Arrêter" faire un code du genre :
Es-ce possible ?
Comme ceci :
If Reference = Cells(i, 4).Value Then
Cells(i, 4).EntireRow.Interior.Color = RGB(174, 240, 194)
ActiveSheet.Buttons.Add(BLeft, BTop, BWidth, BHeight).Select
BTop = BTop + 11.25
Buttons.Caption = "Arrêter"
'Lien vers le Sub du bouton "Arrêter"
End If
Puis dans le Sub du bouton "Arrêter" faire un code du genre :
Private Sub Button2_click()
Button2_click.delete
end sub
Es-ce possible ?