XL 2010 suppression de données en listbox

KRUG WOO

XLDnaute Nouveau
Bonjour les amis,
J'ai crée un userform et y afficher des données dans listbox, mais j'arrive pas à supprimer ces données quand j'utilise le bouton "Supprimer". C'est que je souhaite c'est d'ouvrir mon UserForm "Suivi des horaires salaries" selectionner une ligne de mon choix et clic sur bouton "Supprimer" pour supprimer la ligne. Voila! C'est souhait si vous trouverez le truc.
Merci les amis,
Woo22
 

Pièces jointes

  • Vba débutant saisie userform1.xlsm
    30.2 KB · Affichages: 5

patricktoulon

XLDnaute Barbatruc
Bonjour
j'ai du mal à comprendre pourquoi en mettant un tableau structuré tu travaille encore comme un range classique
pourquoi on se retrouve avec un tableaux structuré avec une 15 aines de lignes vides

inscrit en Aout 2016, on est en 2023,tu devrais avoir au moins les bases au sujet des tableaux structurés

bref c'etait tellement désordoné et incohérent que j'ai fait un CTRL+A puis touche suppr dans le module du userform
bref j'ai tout viré

pour y mettre ceci
VB:
'edit All code by patricktoulon

Private Sub BtmAnnuler_Click()
    Raz
End Sub

Sub reliste()
    ComboMatricule.List = Range("SuiviHoraire[Référence]").Value
    ListBox1.List = Range("SuiviHoraire").Value
End Sub

Sub Raz()
    TextReference = ""
    TextDepartement = ""
    TextHA = ""
    TextHD = ""
    TextNom = ""
    TextPrenom = ""
    reliste
End Sub

'Procédure permettant de fermer le formulare.
Private Sub BtnFermer_Click()
    Unload Me
End Sub

Private Sub BtnSupprimer_Click()
    With ListBox1
        rep = MsgBox("êtes vous ur de vouloir supprimer :" & .List(.ListIndex, 1) & " " & .List(ListIndex, 2), vbYesNo)
        If rep = vbYes Then
            Range("SuiviHoraire").ListObject.ListRows(.ListIndex + 1).Delete
        End If
    End With
    TextReference = ""
    TextDepartement = ""
    TextHA = ""
    TextHD = ""
    TextNom = ""
    TextPrenom = ""
    ComboMatricule = ""
    reliste
End Sub

Private Sub BtnValider_Click()
    With Range("SuiviHoraire").ListObject.ListRows.Add.Range
        .Value = Array(TextReference, TextNom, TextPrenom, TextDepartement, CDate(TextDate), TextHA, TextHD)
    End With
    Me.TextReference = ""
    Me.TextDepartement = ""
    Me.TextHA = ""
    Me.TextHD = ""
    Me.TextNom = ""
    Me.TextPrenom = ""
    Me.ComboMatricule = ""
End Sub

Private Sub ComboMatricule_Change()
    Dim Lig As Long
    If ActiveControl.Name <> "ComboMatricule" Then Exit Sub
    With ComboMatricule
        Lig = .ListIndex
        If Lig > -1 Then
            TextNom = Range("SuiviHoraire[Nom]").Cells(Lig + 1)
            TextPrenom = Range("SuiviHoraire[Prenom]").Cells(Lig + 1)
            TextDepartement = Range("SuiviHoraire[Département]").Cells(Lig + 1)
            TextDate = Range("SuiviHoraire[Date]").Cells(Lig + 1)
            TextHA = Range("SuiviHoraire[Heure Arrivée]").Cells(Lig + 1)
            TextHD = Range("SuiviHoraire[Heure Départ]").Cells(Lig + 1)
            ListBox1.ListIndex = ComboMatricule.ListIndex
        Else
            ListBox1.ListIndex = -1
            Raz
        End If
    End With
End Sub

Private Sub UserForm_Activate()
    reliste
End Sub
 

Pièces jointes

  • Vba débutant saisie userform1.xlsm
    30.8 KB · Affichages: 6

KRUG WOO

XLDnaute Nouveau
Bonjour
j'ai du mal à comprendre pourquoi en mettant un tableau structuré tu travaille encore comme un range classique
pourquoi on se retrouve avec un tableaux structuré avec une 15 aines de lignes vides

inscrit en Aout 2016, on est en 2023,tu devrais avoir au moins les bases au sujet des tableaux structurés

bref c'etait tellement désordoné et incohérent que j'ai fait un CTRL+A puis touche suppr dans le module du userform
bref j'ai tout viré

pour y mettre ceci
VB:
'edit All code by patricktoulon

Private Sub BtmAnnuler_Click()
    Raz
End Sub

Sub reliste()
    ComboMatricule.List = Range("SuiviHoraire[Référence]").Value
    ListBox1.List = Range("SuiviHoraire").Value
End Sub

Sub Raz()
    TextReference = ""
    TextDepartement = ""
    TextHA = ""
    TextHD = ""
    TextNom = ""
    TextPrenom = ""
    reliste
End Sub

'Procédure permettant de fermer le formulare.
Private Sub BtnFermer_Click()
    Unload Me
End Sub

Private Sub BtnSupprimer_Click()
    With ListBox1
        rep = MsgBox("êtes vous ur de vouloir supprimer :" & .List(.ListIndex, 1) & " " & .List(ListIndex, 2), vbYesNo)
        If rep = vbYes Then
            Range("SuiviHoraire").ListObject.ListRows(.ListIndex + 1).Delete
        End If
    End With
    TextReference = ""
    TextDepartement = ""
    TextHA = ""
    TextHD = ""
    TextNom = ""
    TextPrenom = ""
    ComboMatricule = ""
    reliste
End Sub

Private Sub BtnValider_Click()
    With Range("SuiviHoraire").ListObject.ListRows.Add.Range
        .Value = Array(TextReference, TextNom, TextPrenom, TextDepartement, CDate(TextDate), TextHA, TextHD)
    End With
    Me.TextReference = ""
    Me.TextDepartement = ""
    Me.TextHA = ""
    Me.TextHD = ""
    Me.TextNom = ""
    Me.TextPrenom = ""
    Me.ComboMatricule = ""
End Sub

Private Sub ComboMatricule_Change()
    Dim Lig As Long
    If ActiveControl.Name <> "ComboMatricule" Then Exit Sub
    With ComboMatricule
        Lig = .ListIndex
        If Lig > -1 Then
            TextNom = Range("SuiviHoraire[Nom]").Cells(Lig + 1)
            TextPrenom = Range("SuiviHoraire[Prenom]").Cells(Lig + 1)
            TextDepartement = Range("SuiviHoraire[Département]").Cells(Lig + 1)
            TextDate = Range("SuiviHoraire[Date]").Cells(Lig + 1)
            TextHA = Range("SuiviHoraire[Heure Arrivée]").Cells(Lig + 1)
            TextHD = Range("SuiviHoraire[Heure Départ]").Cells(Lig + 1)
            ListBox1.ListIndex = ComboMatricule.ListIndex
        Else
            ListBox1.ListIndex = -1
            Raz
        End If
    End With
End Sub

Private Sub UserForm_Activate()
    reliste
End Sub
Bonsoir et merci Patricktoulon,
Oui c'est tellement désordonné, j'etais un peu perdu dans la structuration, mais merci pour le module ça marche, super!.
 

KRUG WOO

XLDnaute Nouveau
Bonjour,

Vous avez posté votre message avec un formatage incorrect pour un forum :
- Le titre du fil doit être explicite (le plus clair possible) et écrit en minuscules
- Pas de titre du style "URGENT", "A L'AIDE",...
- Votre poste doit être rédigé simplement, en minuscules avec un minumum de formatages, pas de posts tout en gras par exemple.


Merci de respecter cet élément qui contribue à la lisibilité du forum.

Profitez en pour relire la charte dans laquelle il est expliqué que cette pratique n'est pas admise sur XLD.

Bonne soirée
Bonsoir,
Bien noté BrunoM45!
 

Discussions similaires

Réponses
18
Affichages
911
Réponses
7
Affichages
481
Réponses
4
Affichages
395
Réponses
10
Affichages
596
Réponses
2
Affichages
632

Statistiques des forums

Discussions
313 239
Messages
2 096 474
Membres
106 637
dernier inscrit
jpdupont