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 Sub

Cette 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 Sub

Edit 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

@+

Bonjour Othman

Bonjour Bruno

quand je copie ton code, ma ligne est complètement rouge !

il vaut mieux que tu postes en effet un fichier !

capture d ecran 677

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 Sub

Ce 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 Sub

Ce 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)
Rechercher des sujets similaires à "supprimer bouton"