Supprimer bouton"s" dans une cellule"s"
Bonjour à tous!
Je suis nouveau sur le forum, j ai fais un petit tour sur certains sujets et j ai trouvé que c est une communauté unis et que tous le monde essaye de donner son mieux pour aider. Et ce n est qua notre honneur.
Alors je vous expose mon cas en espérant trouver une solution.
La première manipulation que j ai faite c est de créer un bouton (que je vais assigné à un autre code par la suite), à chaque fois que la colonne B n est pas vide en commençant par la ligne 16.
le nombre de ligne changent par rapport à une recherche (déjà effectuée)
Private Sub CommandButton2_Click()
x = 16
Do While Worksheets("Suivi Or").Range("B" & x).Value <> ""
Cells(x, 9).Select
Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=Active Cell.Left, Top:=Active Cell .Top, Width:=Active Cell.Width, _
Height:=Active Cell.Height)
x = x + 1
Loop
End SubCette manipulation fonctionne parfaitement.
Mnt, avant de de faire une nouvelle recherche, j ai envie que les anciens boutons s effacent pour que les nouveaux boutons se créent par rapport au nouveau nombre de ligne. """""CommandButton2_Click()"""""
j ai utilisé ce code mais il ne fonctionnement pas correctement vor pas du tout
Private Sub CommandButton3_Click()
Dim Obj As OLEObject
For Each Obj In ActiveSheet.OLEObjects
Obj.Delete
Next
End SubEdit modo : code entre balises SVP
Merci de revenir vers moi au cas ou quelqu'un a une solution ou un début de solution .
Bonjour Othman et
Ce que tu fais me semble une grosse usine à gaz
Serait-il possible d'avoir un fichier anonymisé SVP
@+
Ceci fonctionne très bien.
Sub creer()
x = 16
Do While Worksheets("Suivi Or").Range("B" & x).Value <> ""
Cells(x, 9).Select
Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=ActiveCell.Left, Top:=ActiveCell.Top, Width:=ActiveCell.Width, _
Height:=ActiveCell.Height)
Obj.Object.Caption = "Bouton " & x
x = x + 1
Loop
End Sub
Sub supprimer()
Dim Obj As OLEObject
For Each Obj In Worksheets("Suivi Or").OLEObjects
Obj.Delete
Next
End SubCe que je ne sais pas c'est où tu places tes macros ? sont-elles relatives à la feuille où se trouvent les boutons. Et enfin la suppression entraîne aussi la suppression des boutons de commande !!
De mon côté je préfère jouer avec les shapes car l'appel aux macros est alors beaucoup plus simple avec .OnAction ! comme sur cet exemple https://www.excel-pratique.com/fr/telechargements/utilitaires/menu-shapes-excel-no441
Bonjour Othman et
Ce que tu fais me semble une grosse usine à gaz
Serait-il possible d'avoir un fichier anonymisé SVP
@+
Bonjour Bruno et merci pour votre retour qui m a fait sourire des le matin. L usine à gaz m a déjà étouffé vu que je suis encore novice sur le VBA!!
J étais entrain de vous préparer un "fichier test" mais avant j ai voulu tester la solution de "Steelson" et il s est avéré que ca fonctionne parfaitement!!! Et ca me rend ravi!!!
Voila merci encore pour votre retour!
Et surement a bientôt!
Othman
Ceci fonctionne très bien.
Sub creer() x = 16 Do While Worksheets("Suivi Or").Range("B" & x).Value <> "" Cells(x, 9).Select Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _ Link:=False, DisplayAsIcon:=False, Left:=ActiveCell.Left, Top:=ActiveCell. Top, Width:=ActiveCell.Width, _ Height:=ActiveCell.Height) Obj.Object.Caption = "Bouton " & x x = x + 1 Loop End Sub Sub supprimer() Dim Obj As OLEObject For Each Obj In Worksheets("Suivi Or").OLEObjects Obj.Delete Next End SubCe que je ne sais pas c'est où tu places tes macros ? sont-elles relatives à la feuille où se trouvent les boutons. Et enfin la suppression entraîne aussi la suppression des boutons de commande !!
De mon côté je préfère jouer avec les shapes car l'appel aux macros est alors beaucoup plus simple avec
.OnAction! comme sur cet exemple https://www.excel-pratique.com/fr/telechargements/utilitaires/menu-shapes-excel-no441
Bonjour Steelson et merci pour votre retour! Je voulais vous dire que votre proposition de solution a fonctionné parfaitement!
Vous avez fait ma journée et je vous en remercie vraiment!
J'aurai besoin cependant d'un complément de solution pour faire ma semaine!! Je voudrais affecter a chaque bouton nouvellement créé ce programme "Sub SuiviOR_Bouton1_Cliquer()"
Comment pourrai je coder?
Merci encore
J'aurai besoin cependant d'un complément de solution pour faire ma semaine!! Je voudrais affecter a chaque bouton nouvellement créé ce programme "Sub SuiviOR_Bouton1_Cliquer()"
Comment pourrai je coder?
Merci encore
Je regarde ... j'en n'ai pas trop l'habitude avec des boutons, c'est un peu plus complexe pour moi.
Oublie ce qui précède, oublie les OLE et compagnie ...
Avec ceci tu pourras aussi récupérer le nom du bouton et savoir sur quelle ligne agir !
Sub creer()
Dim x%
x = 16
Do While Worksheets("Suivi Or").Range("B" & x).Value <> ""
Cells(x, 9).Select
With ActiveSheet.Buttons.Add(ActiveCell.Left, ActiveCell.Top, ActiveCell.Width, ActiveCell.Height)
.Caption = "Bouton " & x
.OnAction = "MaMacro"
End With
x = x + 1
Loop
End Sub
Sub supprimer()
Dim Obj As Object
For Each Obj In Worksheets("Suivi Or").Buttons
Obj.Delete
Next
End Sub
Sub MaMacro()
MsgBox "Coucou depuis """ & ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text & """ !"
End Sub
Oublie ce qui précède, oublie les OLE et compagnie ...
Avec ceci tu pourras aussi récupérer le nom du bouton et savoir sur quelle ligne agir !
Sub creer() Dim x% x = 16 Do While Worksheets("Suivi Or").Range("B" & x).Value <> "" Cells(x, 9).Select With ActiveSheet.Buttons.Add(ActiveCell.Left, ActiveCell. Top, ActiveCell.Width, ActiveCell.Height) .Caption = "Bouton " & x .OnAction = "MaMacro" End With x = x + 1 Loop End Sub Sub supprimer() Dim Obj As Object For Each Obj In Worksheets("Suivi Or").Buttons Obj.Delete Next End Sub Sub MaMacro() MsgBox "Coucou depuis """ & ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text & """ !" End Sub
Rebonjour Steelson !!! ET CA MAAAAAAAARCHEE!!!
Merci infiniment pour votre aide vous avez fait ma semaine! VRAIMENT! Je penserai à vous reposé ce weekend!!!!!
Y a eu quelques ajustement à faire vu que j vais un bouton "Retour" qui était là et qui du coup disparaissait aussi en faisant la manip "Supprimer"; j ai du le réintroduire à chaque fois et du coup le tout fonctionne!!!!!
Merci encore pour votre aide si précieuse!
En vous souhaitant une bonne fin de journée et un bon weekend!
Pour que tes boutons soient détachés et plus visibles, tu peux mettre
With ActiveSheet.Buttons.Add(ActiveCell.Left + 1, ActiveCell.Top + 1, ActiveCell.Width - 2, ActiveCell.Height - 2)