Tabel filteren en records wissen

Status
Niet open voor verdere reacties.

JefMang

Gebruiker
Lid geworden
20 sep 2019
Berichten
22
Beste helpers,
Ik ben al een paar dagen op zoek om de gepaste code te vinden voor mijn verlof registratie systeem. Teneinde raad richt ik mij tot jullie in de hoop dat jullie mij kunnen verlossen van mijn nachtmerrie.
Mijn probleem is het volgende : Ik heb 1 ingave blad waarbij ik de maand en de medewerker selecteer. Alle verlof gegevens worden geregistreerd in een tabel op het tabblad Afwezigheden.
Een voorbeeld vind je in het bijgevoegde bestand.
Nu zou ik graag via een listbox de tabel op basis van de maand en collega willen filteren. Daarna zou ik door middel van dubbelklikken op een record in de listbox dit record uit de tabel willen verwijderen.
Ik heb de formules die ik tot nu toe heb gevonden laten staan maar ze slaan nergens op.
Zou er iemand mij van slapeloze nachten wil[XML][/XML]len verlossen aub?
 

Bijlagen

  • Verlof registratie.xlsm
    352,9 KB · Weergaven: 24
Gaat het om de tabel op tabblad "Afwezigheden"?
Ik vraag me af waarom je de rijen met een userform wilt verwijderen terwijl je een simpele filterfunctie in de tabel hebt zitten.

Maarja, kleine aanpassing gedaan wat misschien wel voldoet aan je vraag.
 

Bijlagen

  • Verlof registratie.xlsm
    338,6 KB · Weergaven: 41
Laatst bewerkt:
Beste JVeer, alvast bedankt voor uw reactie.
Het gaat inderdaad om de tabel op het tabblad Afwezigheden.
Er zijn diverse gebruikers van dit verlof registratie systeem, en het tabblad Afwezigheden is voor hen verborgen, dus kunnen zij de filterfunctie niet gebruiken.
Toch moet er voor hen een mogelijkheid zijn om geregistreerde verlofdagen te verwijderen, en dat is precies mijn vraag.
Ik ga in ieder geval aan de slag met het gewijzigde bestand en kom hier zeker nogmaals op terug.
 
Beste JVeer,
Ik begrijp ondertussen waar ik in de fout ben gegaan en met jouw oplossing werkt dit goed behalve indien ik de laatste regel in de listbox wil verwijderen.
In het voorbeeld bestand kies ik voor Collega 1 en de maand Maart.
Als ik dan de laatste regel "22/03/2021" wil verwijderen krijg ik een foutmelding en de regel blijft in de tabel staan.
Zou je aub mij hiermee nogmaals kunnen helpen ?
 
Dit deel bijvoorbeeld zo schrijven. Wanneer je de laatste rij verwijdert, blijft de geselecteerde rij staan op een lege rij. Dat geeft een error.

Code:
Private Sub lbWijzigen_Click()
On Error GoTo einde
TextBox1 = lbWijzigen.Column(0)
TextBox2 = Format(lbWijzigen.Column(1), "dd/mm/yyyy")
TextBox3 = lbWijzigen.Column(2)
TextBox4 = Format(lbWijzigen.Column(3), "hh:mm")
TextBox6 = lbWijzigen.Column(4)
TextBox7 = lbWijzigen.Column(5)
einde:
End Sub
 
Beste JVeer,

Jouw oplossing lijkt zo simpel maar is zeer effectief.
Mijn programma werkt ondertussen perfect en precies zoals ik het mij had voorgesteld.
Ik wil je nogmaals bedanken voor je hulp.
 
Als je na de verwijdering van een rij in je werkblad toch een 'Unload me' doet, waarom zou je de remove doen in je List?

Allemaal overbodige zaken.

Code:
Private Sub CommandButton1_Click()
    Sheets("Afwezigheden").ListObjects(1).DataBodyRange.Columns(1).Find(lbWijzigen.Column(0)).Delete
    Unload Me
End Sub




Private Sub lbWijzigen_Click()
TextBox1 = lbWijzigen.Column(0)
TextBox2 = Format(lbWijzigen.Column(1), "dd/mm/yyyy")
TextBox3 = lbWijzigen.Column(2)
TextBox4 = Format(lbWijzigen.Column(3), "hh:mm")
TextBox6 = lbWijzigen.Column(4)
TextBox7 = lbWijzigen.Column(5)
End Sub
 
@JVeer

Code:
Private Sub lbWijzigen_Click()
  If lblWijzigen.listindex=-1 then exit sub

end Sub
 
Beste helpers,

Ook dit werkt weerom perfect.
Misschien nog 1 vraagje waar ik niet uitkom.
in de listbox zou kolom 4 in uur en minuten moeten getoond worden ("hh:mm") terwijl dat in het voorbeeld in decimalen is.
Daarom had ik Private Sub lbWijzigen_Click() de 3°kolom formaat ("hh:mm") meegegeven.
maar blijkbaar doe ik de format steeds op de verkeerde plaats.
Zou je zo vriendelijk willen zijn mij nog een keer te helpen.
 
Code:
Private Sub CommandButton1_Click()
If lbWijzigen.ListIndex = -1 Then Exit Sub
    Sheets("Afwezigheden").ListObjects(1).DataBodyRange.Columns(1).Find(lbWijzigen.Column(0)).Delete
    Unload Me
End Sub


Private Sub CbPloeg_Change()
With lbWijzigen
  .Clear
sv = Sheets("Afwezigheden").Cells(1).CurrentRegion
   For i = 2 To UBound(sv)
       If sv(i, 7) = CbPloeg.Value And sv(i, 5) = TextBox5.Text Then s0 = s0 & "_" & i
   Next i
    If Len(s0) > 0 Then
       sv = Application.Index(sv, Application.Transpose(Split(Mid(s0, 2), "_")), [transpose(row(1:7))])
       .Column = sv
     If Len(s0) > 3 Then .List = sv
    End If
     For j = 0 To .ListCount - 1
       .List(j, 3) = Format(.List(j, 3), "hh:mm")
     Next j
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan