Mise a jour listbox

Bonjour voila je n'arrive pas a actualiser ma listbox de mon userbox

j'ai mis en lien mon fichier:

voici le principe en feuil1 on a un bouton on clique

une fenetre s'ouvre et la on va sur l'onglet "ajout/supprimer".

Après on selectionne une machine et supprimer juste en dessous et la ca supprime bien dans les feuilles excel mais pas de mise à jour.

je n'ai pas trouvé de code, j'ai essayé de faire un UserForm_Initialize mais sans succès.

Merci a vous

69essai-gmao-vba.xlsm (44.77 Ko)

Bonsoir

Private Sub C_supprmachine_Click()
'déclaration des variables
Dim Supprmachine As String

' on recopie le texte sélectionné de la ListBox dans la variable supprmachine'
Supprmachine = Me.L_machinesuppr.Text
'pour accéder à la ListBox, il faut utiliser 'Me' parce qu'on est dans le code de la fenetre
' et donc 'Me' représente la fenetre, puis le nom de la liste -> Me.L_machinesuppr
' dans une ListBox, le numéro de ligne sélectionnée = ListIndex et le texte de la  ligne sélectionnée = Text

' si une ligne est sélectionnée
    If Me.L_machinesuppr.ListIndex <> -1 Then
    Else
        MsgBox ("Veuillez sélectionner une machine")
    Exit Sub
    End If
    'selectionner la feuille machine et rechercher la valeur selectionnée
    Sheets("Machines").Select
    Cells.Find(What:=Supprmachine, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    'suppression de la valeur de la cellule
    Selection.ClearContents
    'suppression de la ligne de la cellule
    Selection.Delete Shift:=xlUp
    Me.L_machinesuppr.RemoveItem (Me.L_machinesuppr.ListIndex)

End Sub

Teste cela

J'ai rajouté la dernière ligne

Bye

ca fonctionne impecable merci a toi par contre je voulais aussi mettre a jour ma liste dans mon onglet intervention

j'ai donc copié le meme et coller juste en dessous et changé le L_supprmachine par List_mat

mais ca ne fonctionne pas

les deux listes proviennent de la meme feuille

Bonjour

Voici les modifs

Private Sub C_supprmachine_Click()
'déclaration des variables
Dim Supprmachine As String
' on recopie le texte sélectionné de la ListBox dans la variable supprmachine'
Supprmachine = Me.L_machinesuppr.Text
'pour accéder à la ListBox, il faut utiliser 'Me' parce qu'on est dans le code de la fenetre
' et donc 'Me' représente la fenetre, puis le nom de la liste -> Me.L_machinesuppr
' dans une ListBox, le numéro de ligne sélectionnée = ListIndex et le texte de la  ligne sélectionnée = Text

' si une ligne est sélectionnée
    If Me.L_machinesuppr.ListIndex <> -1 Then

    Else
        MsgBox ("Veuillez sélectionner une machine")
    Exit Sub
    End If
    'selectionner la feuille machine et rechercher la valeur selectionnée
    Sheets("Machines").Select
    Cells.Find(What:=Supprmachine, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    'suppression de la valeur de la cellule
    Selection.ClearContents
    'suppression de la ligne de la cellule
    Selection.Delete Shift:=xlUp
    Me.L_machinesuppr.RemoveItem (Me.L_machinesuppr.ListIndex)
    MultiPage1.Value = 0
    Me.List_mat.RemoveItem (Me.L_machinesuppr.ListIndex)
End Sub

Là j'ai rajouté les dernières lignes

Me.L_machinesuppr.RemoveItem (Me.L_machinesuppr.ListIndex)
    MultiPage1.Value = 0
    Me.List_mat.RemoveItem (Me.L_machinesuppr.ListIndex)

En espèrant que cela te convienne

Bye

Yes au top j'ai rajouté une petite ligne pour retourner sur l'autre page

Contente pour toi, tu peux mettre en résolu.

Bonne soirée

Bon je dois vraiment etre une quiche... j'ai voulu également mettre a jour après ajout d'une machine mais la il bug j'ai voulu enlever le "Me" mais pareil

46essai-gmao-vba.xlsm (46.04 Ko)

Bonjour

Voici la partie corrigée

Private Sub C_ajoutermachine_Click()
'déclaration d'une variable texte
Dim Ajoutmachine As String

'déclaration de la valeur de la variable
Ajoutmachine = T_ajoutermachine.Value

'message si rien n'est saisie dans la zone de texte ajouter machine
    If Ajoutmachine = "" Then
        MsgBox ("Veuillez saisir une machine à ajouter")
    Exit Sub
    End If

    'se positionner en partie basse de la dernière cellule première colonne
    Sheets("Machines").Select
        Range("A1").Select
            If ActiveCell <> "" Then
                Selection.End(xlDown).Select
            End If
'recopie de la valeur de la variable dans la cellule
    ActiveCell.Offset(1, 0) = Ajoutmachine
    'mise a jour des listes après ajout
    L_machinesuppr.AddItem (Ajoutmachine)
    MultiPage1.Value = 0
    List_mat.AddItem (Ajoutmachine)
    MultiPage1.Value = 1

End Sub

Bon courage
Bye

et bien je dis oui quel idiot il faut l'ajouter pas le supprimer...

merci a toi

Si tes petits soucis sont terminés, pense à mettre ce sujet en résolu

Bonne journée

Déjà fait

PARFAIT

Bonsoir

Pour moi cela fonctionne par contre les ajouts se mettent à la fin des listes, rien ne t'empêche de trier ensuite tes listbox

Bonne soirée

Rechercher des sujets similaires à "mise jour listbox"