Avatar billede Slettet bruger
26. januar 2015 - 12:54 Der er 7 kommentarer og
1 løsning

vba kode til at slette i listbox

Hej.
Da mit forrige spørgsmål var udtrykket forkert prøver jeg igen.

jeg har en userform hvor man kan oprette info som bliver vist i min listbox.
Data bliver skrevet ned i arket.

Vil  gerne kunne slette den / de der bliver makeret.
Om det er en enkel, to eller alle.

Tak for hjælpen
Avatar billede supertekst Ekspert
27. januar 2015 - 13:55 #1
Private Sub CommandButton1_Click()                  'Slet markerede
Rem Slet markerede
    With Me.ListBox1
        For ix = .ListCount - 1 To 0 Step -1
            If .Selected(ix) = True Then
                .RemoveItem (ix)
            End If
        Next ix
    End With
End Sub
Private Sub CommandButton2_Click()                  'Slet alle
    Me.ListBox1.Clear
End Sub
Private Sub UserForm_activate()                    'Til TEST
    With Me.ListBox1
        .AddItem "AA1"
        .AddItem "AA2"
        .AddItem "AA3"
        .AddItem "AA4"
        .AddItem "AA5"
        .AddItem "AA6"
        .AddItem "AA7"
        .AddItem "AA8"
    End With
End Sub
Avatar billede Slettet bruger
27. januar 2015 - 15:50 #2
Vil ikke virke da info bliver skrevet i selve  vba koden.
Infoen bliver skrevet i en userform og ryger ned i arket. Derved skal den finde ud af hvilken ligne Det er skrevet i og dermed slette det i arket.
Avatar billede kjulius Novice
27. januar 2015 - 22:31 #3
@Supertekst: Hvis listen er tom, kan du løbe ind i et loop, tror jeg.

@uglyo_o: Du skriver det bliver vist i din listbox i spørgsmålet. Nu skriver du, at det ryder ned i (regne)arket. Vil det sige, at indtastningerne bliver lagt begge steder, og at du vil have, at VBA-koden skal finde de list-entries der skal slettes i regnearket og fjerne dem der også?
I så fald, hvad er nøglen (lægger du indexet fra listboxen med ned i regnearket, så det kan bruges til at fremsøge den tilsvarende række, eller hvordan foregår det? Eller er der et entydigt varenummer eller andet der kan bruges?

Jeg har set dit tidligere spørgsmål, men er ikke blevet klogere.

Du bliver nødt til at formulere dig så selv tungnemme kan forstå dig. :-) Vi sidder jo ikke med din viden om hvad du foretager dig.
Avatar billede Slettet bruger
27. januar 2015 - 23:46 #4
Det bliver vist i listbox pga. rowsource.
Fks. får A1:F5000 et navn(DB1) det bliver skrevet i rowsource, derfor det bliver vist, men dataerne bliver skrevet i fks. ark1.

Hvis man bruger fks. Akr1.range(A1:F1).value = "" bliver det slettet i arket og fjernes fra listbox.(automatisk)

Det der bliver lageret i arket er person oplysninger.
Det vil sige at der er en userform hvor med at man kan oprette, redigere, slette, vælg alt.

Trykker du på en ligne i listboxen bliver de person oplysninger makeret, trykker man så på slet skal de fjernes i arket, hvor de så automatisk bliver fjernet fra listboxen.

trykker man på flere og der efter slet, så skal de der er makeret slettes.

Maker man alt, skal alt slettes.
Avatar billede kjulius Novice
28. januar 2015 - 10:57 #5
Okay, hvis jeg forstår dig ret, så har du en bundet listbox. Den er bundet op til en rowsource som består af et range i dit regneark, der derfor fungerer som en tabel i en database.

Vil det være korrekt at antage, at det du gerne vil gøre er at loope gennem listboxens entries, udvælge de markerede, og bruge data fra listboxens kolonne 0 til at finde en tilsvarende række i det område i regnearket der er tildelt din rowsource og slette denne række?
Avatar billede kjulius Novice
28. januar 2015 - 10:59 #6
Hov, skulle kun have været en kommentar..
Beklager.
Avatar billede Slettet bruger
28. januar 2015 - 11:11 #7
Præcis.
Avatar billede Slettet bruger
07. april 2015 - 14:02 #8
Ej løst - lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester