VBA selectie verwijderen

Status
Niet open voor verdere reacties.

jan excel

Gebruiker
Lid geworden
4 mrt 2007
Berichten
437
Hoi Allen,

Wie kan mij helpen om een werkende vba code te maken om gegevens van geselecteerde datum in listbox1 te verwijderen.

Voorbeeld als bijlage toegevoegd.

omschrijving en voorbeeld:
Na op de commandoknop menu te hebben geklikt kom je het hoofdmenu, hierin zie je een ListBox1 en een CommandButton1.
In ListBox1 staan datums die in het Excel overzicht staan, nu is het de bedoeling dat de gebruiker een datum kan selecteren waarvan de gegevens dienen worden verwijderd.

Voorbeeld:
De datum 26-03-2013 wordt in ListBox1 geselecteerd dan dient na het klikken op commandButton1 (verwijderen) de gegevens in rij A6 t/m G6 worden verwijderd.

Zal jullie zeer dankbaar zijn voor de oplossing.
Jan E
 

Bijlagen

Plak deze achter je commandbutton
Code:
Private Sub CommandButton1_Click()
    Dim strRange As String
    With ListBox1
        strRange = .RowSource
        Range(strRange).Cells(.ListIndex + 1, 1).Delete shift:=xlUp
        .RowSource = vbNullString
        .RowSource = strRange
    End With
End Sub
 
Hoi Spaarie,

Bedankt voor je reactie en inbreng, echter jou code haalt inderdaad de datum weg, echter niet de gehele regel.
Kun je de code zo maken dat het de gehele regel verwijderd.
Dus als datum op A3 dient te worden vewijderd, dient ook b3 t/mG3 te worden verwijderd.


Alvast bedankt
Jan E
 
Sorry!
Code:
    Dim strRange As String
    With ListBox1
        strRange = .RowSource
        Range(strRange).Cells(.ListIndex + 1, 1).[COLOR="#FF0000"]EntireRow[/COLOR].Delete shift:=xlUp
        .RowSource = vbNullString
        .RowSource = strRange
    End With
 
Hoi Spaarie,

Kom er net achter als er niets wordt geselecteerd dat het steeds de bovenste regel verwijderd, dit moet niet mogelijk zijn.
Eigenlijk moet de code pas aktief worden als er in de Listbox1 daadwerkelijk wat geselecteerd is.
Als er niets is wordt geselecteerd en er wordt op de verwijder button geklikt zou er een msgbox dienen te komen "eerst een datum selecteren waarvan u de gegevens wilt verwijderen".

daarna code uitvoeren dat de datum met de gegevens verwijderd die geselecteerd is.


weet jij ook hiervoor een oplossing ?

groet,
Jan E
 
Zo?
Code:
Private Sub CommandButton1_Click()
    If Me.ListBox1.ListIndex < 0 Then
        MsgBox "Eerst een datum selecteren waarvan u de gegevens wilt verwijderen", vbOKOnly, "Selectie"
        Exit Sub
    Else
        With ListBox1
            strRange = .RowSource
            Range(strRange).Cells(.ListIndex + 1, 1).EntireRow.Delete shift:=xlUp
            .RowSource = vbNullString
            .RowSource = strRange
        End With
    End If
End Sub
 
Ik zou een multiselect listbox gebruiken en pas rijen verwijderen als de gebruiker alle te verwijderen rijen heeft geselecteerd:


Code:
Private Sub UserForm_Initialize()
    ListBox1.List = Sheets("data").Columns(1).SpecialCells(2).Offset(1).SpecialCells(2).value
End Sub

Private Sub CommandButton1_Click()
    For J = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(J) Then ListBox1.List(J, 0) = ""
    Next
    Sheets("data").Cells(2, 1).Resize(ListBox1.ListCount) = ListBox1.List
    Sheets("data").Columns(1).SpecialCells(4).EntireRow.Delete
End Sub
 

Bijlagen

Laatst bewerkt:
Hoi Spaarie en snb,

Bedankt voor jullie hulp.
resultaat is nu zo als ik het wenst.
Allebei de opties zijn voor mij mogelijk, thanks !


groet,
Jan E
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan