• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Rijen verwijderen

Status
Niet open voor verdere reacties.

don42

Gebruiker
Lid geworden
25 apr 2014
Berichten
800
Hoi allemaal

ik probeer rijen te verwijderen via een userform
gebruik
Code:
if isnumeric(textbox1) then
rows(textbox1).delete
end if

dit werk heel simpel
nu wil ik graag een listbox met de namen van kolom A van a2 tot end(xlup) (zoiets)
en als ik deze selecteer de rij verwijderen

weet iemand dit

Don
 
Dit is geen kwestie van 'weten', maar van 'maken'.

Kijk eens in je VBA handboek hoe je dit zou kunnen aanpakken.
 
Zulke dingen zijn eerder te vinden in een handboek van VB dan van VBA.
Om de combobox (of listbox) te vullen gebruik je het Initialize event van het formulier:
(dit event is niet terug te vinden in de object browser :( )

Code:
Private Sub UserForm_Initialize()
Dim Namen As Range, blad As Worksheet, i As Long
Set blad = Sheets("Blad1")
Set Namen = blad.Range("A1").CurrentRegion.Columns(1)

For i = 2 To Namen.Cells.Count
    cbo_Namen.AddItem Namen.Cells(i)
    'cbo_Namen is de combobox met de namen
    'programmatie listbox is hetzelfde
Next
End Sub

En de programmatie om een rij leeg te maken (heb ik achter een knop gezet)
Code:
Private Sub cmd_verwijderRij_Click()
'Gekoppeld aan een button met als naam cmd_verwijder
'MsgBox cbo_Namen.ListIndex
'cbo_Namen is de combobox met de namen
'eerste item heeft index 0
Dim blad As Worksheet
Set blad = Sheets("Blad1")
If cbo_Namen.ListIndex = -1 Then Exit Sub 'niets geselecteerd
blad.Rows(cbo_Namen.ListIndex + 2).Delete
'+ 2 omdat listindex begint met 0 en omdat rij 1 de titels bevat
cbo_Namen.Clear
'lijst leegmaken
UserForm_Initialize
'en opnieuw vullen
End Sub

Je kunt ook de enabled eigenschap van de knop op false zetten in het formulierontwerp en de volgende code aan de combobox koppelen:

Code:
Private Sub cbo_Namen_Change()
cmd_verwijderRij.Enabled = cbo_Namen.ListIndex >= 0
cmd_verwijderRij.Caption = "Verwijder de rij van " & cbo_Namen.Value

End Sub
 
Laatst bewerkt door een moderator:
ik heb dit nu

Code:
 Private Sub Userform_initialize()
   ListBox1.list = Sheets("invoerchf").Range(Range("a2"), Range("a2").End(xlDown)).Value
End Sub
Private Sub CommandButton1_Click()
  With ListBox1
   Worksheets("invoerchf").Range("A" & .ListIndex + 1).EntireRow.Delete shift:=xlUp
    .RemoveItem (.ListIndex)
   End With
End Sub

de regel wordt uit de listbox gewist
maar niet de juiste row!
 
ListIndex begint met 0, het is +1 ipv +2 denk ik
Vergeet ook niet de listbox opnieuw te vullen
 
Valt wel mee hoor:

Green, Bullen, Bovey, Alexander Excel 2007 VBA ISBN 978-0-470-04643-2, chapter 13
 
Hallo ik heb nu dit:
en het werkt

Code:
Private Sub CommandButton1_Click()
  Dim i As Long
 With Sheets("invoerchf")
     For i = 100000 To 1 Step -1
         If .Cells(i, "a") = ListBox1 Then
             .Cells(i, "a").EntireRow.Delete
         End If
    Next i
 End With
End Sub
 
Wel erg omslachtig, kan je ook vervangen door:
(Ik ga ervan uit dat in A1 de titel staat en vanaf A2 de namen)
Sheets("invoerchf").Rows(ListBox1.ListIndex + 2).Delete
 
#8 werkt super
graag even uitleg wat betekent die +2
heel erg bedankt.
 
Excel Blad:

Naam
Jan
Els
Chris

Lijst op formulier:

Jan
Els
Chris


ListIndex als eerste naam (Jan) is aangeklikt = 0 (niet 1!). Dan moet rij 2 verwijderd worden (want de titel op de sheet telt niet mee)
 
bedankt voor deze duidelijke uitleg
ga mijn vraag sluiten
:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan