Eintrag aus Array löschen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
ListBox
Bild

Betrifft: Eintrag aus Array löschen
von: Luca Meier
Geschrieben am: 20.11.2015 08:40:52

Hallo zusammen
ich habe einen Array welcher bei einem neuen Eintrag jeweils erweitert wird. Nun soll es möglich sein, einen beliebigen Eintrag zu löschen und dass der Eintrag dann wieder kleiner wird.
Bsp:
So erweitere ich denn Array:

ReDim Preserve Addr1(count)
ReDim Preserve xrange(count)
  
Addr1(count) = txb_xvalues.Value
 
Set xrange(count) = Range(Addr1(count))
count = count + 1

Nun soll bei einer gewissen Auswahl des Users, bspw. dem zweiten Eintrag im Array, dieser gelöscht werden. ( "auswahl" ist jeweils der Eintrag den der User gewählt hat)
Ich habe es bis jetzt so versucht, was nicht wirklich geklappt hat:

ReDim Preserve Addr1(auswahl)
ReDim Preserve xrange(auswahl)
Addr1(auswahl) = ""
Set xrange(auswahl) = Range(Addr2(auswahl))
l_listbox.RemoveItem auswahl
cmd_create.Enabled = True
count = count - 1

Ich hoffe ihr könnt mir helfen :)
Lg

Bild

Betrifft: AW: Eintrag aus Array löschen
von: EtoPHG
Geschrieben am: 20.11.2015 08:58:36
Hallo Luca,
Dein Betreff als Suchbegriff in der Forums-Recherche ergibt über 1400 Treffer!
Erst suchen, dann fragen ! ;-)
Gruess Hansueli

Bild

Betrifft: AW: Eintrag aus Array löschen
von: Luca Meier
Geschrieben am: 20.11.2015 08:59:54
hi, ja klar nur habe ich noch nichts brauchbares gefunden;
ich schaffs bereits den Eintrag zu löschen, jedoch muss der Array ja dann noch zurückverschoben werden, da der Eintrag bleibt und nur der Wert gelöscht wird, das ist das was ich nicht schaff..

Bild

Betrifft: AW: Eintrag aus Array löschen
von: Rudi Maintaire
Geschrieben am: 20.11.2015 09:48:13
Hallo,
ich weiß ja nicht, was du da veranstaltest. Sieht aber konfus aus.
Welches Array meinst du? Addr1??
Du hast doch die Listbox.

  l_listbox.RemoveItem auswahl
  Addr1 = l_listbox.list
Gruß
Rudi

Bild

Betrifft: AW: Eintrag aus Array löschen
von: Luca Meier
Geschrieben am: 20.11.2015 10:25:14
Also das Problem ist nicht die Listbox, dort funktionierts. Aber ich habe ein Array für x-Werte, sprich
xrange()
Nun wird der gefüllt bspw mit drei werten also gibt es:
xrange(0), xrange(1), und xrange(2)
Nun wählt der User einen Eintrag aus der Listbox, bspw xrange(1).
Das heisst, auswahl = 1, und nun soll dieser Arrayeintrag gelöscht werden und
xrange(2) sollte verschoben werden, so dass der Array nurnoch zwei Eingaben hat, ohne xrange(1).
Also etwa so:
vorher:
xrange(0) = "Baum"
xrange(1) = "Auto"
xrange(2) = "Tee"
Nun klickt User auf Auto
neuer Array sollte so aussehen:
xrange(0) = "Baum"
xrange(1) = "Auto"
Habe es mal bedingt geschafft, indem ich mit einer For Schlaufe einfach ab Auswahl bis Ubound denn Array verschiebe aber funktioniert immer noch nicht ganz.

Bild

Betrifft: AW: Eintrag aus Array löschen
von: Rudi Maintaire
Geschrieben am: 20.11.2015 10:40:33
Hallo,
neuer Array sollte so aussehen:
xrange(0) = "Baum"
xrange(1) = "Auto"

wieso das?
Ich hätte auf
xrange(0) = "Baum"
xrange(1) = "Tee"
getippt.

l_listbox.RemoveItem auswahl
redim xrange(l_listbox.listcount-1)
for i=0 to l_listbox.listcount-1
xrange(i)=l_listbox.list(i)
next
Gruß
Rudi

Bild

Betrifft: AW: Eintrag aus Array löschen
von: EtoPHG
Geschrieben am: 20.11.2015 10:45:20
Hallo Luca,
Ich weiss nicht was du willst, dass ist doch was Rudi macht:
1. Der Eintrag wird aus der Listbox entfernt
2. Der Array wird mit dem Array der Listbox (.List) überschrieben und enthält somit den Eintrag auch nicht mehr.
Wenn du damit nicht zurechtkommst, bitte eine Beispielmappe mit dem vollständigen Code, bezgl. Array(s) und Listbox!
Gruess Hansueli

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Eintrag aus Array löschen"