Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Array rückwärts

Forumthread: Array rückwärts

Array rückwärts
07.02.2005 14:00:32
Berta
Hi Leute,
brauch mal Hilfe!
Ich habe eine Listbox, dort stehen Dateinamen (z.B. 13 Stück, variabel)drin.
Diese möchte ich jetzt aber umgekehrt in der ListBox zeigen.
Wollte dies über ein Array machen, also Listbox in Array einlesen und umgekehrt ausgeben, sprich letzt eingelesener Wert als erstes raus.
Hab schon viel im Netz geschaut, aber ich finde keinen richtigen Ansatz!
Freue mich über jede gute Idee! Danke
MfG
Berta
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array rückwärts
harry
hi,
weiss nicht, wie der code zum füllen des arrays aussieht, aber hier ein beispiel für eine solche schleife:
For i = 10 to 1 Step - 1
...
Next i
liebe grüße,
harry
AW: Array rückwärts
Berta
Danke Harry,
aber leider fängt er damit nicht von hinten an das Array abzubauen.
Naja, muss ich halt weiter suchen.
Danke trotzdem!
Berta
Anzeige
AW: Array rückwärts
harry
hi,
kopier das mal in ein modul:

Sub array_rückw()
Dim zaHlen() As Long
ReDim zaHlen(10)
For i = 1 To 10
zaHlen(i) = i
Next i
For j = i - 1 To 1 Step -1
a = a + 1
ActiveSheet.Cells(a, 1).Value = zaHlen(j)
Next j
End Sub

funkt doch, oder?
liebe grüße,
harry
Anzeige
AW: Array rückwärts
Berta
hi harry,
das ist zwar eine Möglichkeit, aber nicht die passende für mich.
ich gabe eine listbox, die ist sortiert. diese will ich nun in ein array einlesen, listenbox löschen, array rückwärts wieder ausgeben. an der sortierung innerhalb der listbox soll nichts geändert werden, nur eben von hinten nach vorne.
danke
berta
Anzeige
;
Anzeige

Infobox / Tutorial

Array rückwärts ausgeben in VBA


Schritt-für-Schritt-Anleitung

Um ein Array rückwärts auszugeben und die Werte in einer ListBox darzustellen, folge diesen Schritten:

  1. ListBox einrichten: Stelle sicher, dass du eine ListBox in deinem Excel-Arbeitsblatt hast, die bereits mit Dateinamen gefüllt ist.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (deinDateiname)", wähle "Einfügen" und dann "Modul".

  4. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub ArrayRueckwaertsAusgeben()
       Dim myArray() As String
       Dim i As Integer
       Dim j As Integer
    
       ' ListBox-Werte in das Array einlesen
       ReDim myArray(ListBox1.ListCount - 1)
       For i = 0 To ListBox1.ListCount - 1
           myArray(i) = ListBox1.List(i)
       Next i
    
       ' ListBox leeren
       ListBox1.Clear
    
       ' Array rückwärts ausgeben
       For j = UBound(myArray) To LBound(myArray) Step -1
           ListBox1.AddItem myArray(j)
       Next j
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und kehre zu Excel zurück. Führe das Makro aus, um die ListBox zu aktualisieren.


Häufige Fehler und Lösungen

  • Problem: ListBox bleibt leer nach Ausführung des Makros.

    • Lösung: Überprüfe, ob die ListBox tatsächlich Werte enthält, bevor du das Makro ausführst. Stelle sicher, dass der Name der ListBox korrekt ist.
  • Problem: Laufzeitfehler bei der Array-Befüllung.

    • Lösung: Achte darauf, dass du die ListBox mit Werten gefüllt hast, bevor du versuchst, sie in das Array einzulesen.

Alternative Methoden

Eine andere Möglichkeit, ein Array rückwärts auszugeben, ist die Verwendung einer For Schleife rückwärts. Hier ist ein einfaches Beispiel:

For i = UBound(myArray) To LBound(myArray) Step -1
    ' Hier kannst du den Code für die Ausgabe einfügen
Next i

Diese Methode kann hilfreich sein, wenn du nur bestimmte Werte aus einem Array durchlaufen und ausgeben möchtest.


Praktische Beispiele

Stell dir vor, du hast eine ListBox mit den Werten "Datei1", "Datei2", "Datei3" usw. Nach dem Ausführen des Makros sollte die ListBox folgendermaßen aussehen:

  • Datei3
  • Datei2
  • Datei1

Das Beispiel zeigt, wie einfach es ist, ein Array rückwärts auszugeben und die Werte effektiv in einer ListBox darzustellen.


Tipps für Profis

  • Nutze die Funktion UBound() und LBound(), um die Grenzen deines Arrays dynamisch zu bestimmen, besonders wenn du nicht weißt, wie viele Elemente es enthalten wird.
  • Berücksichtige, dass das Arbeiten mit Arrays in VBA oft schneller ist als das direkte Manipulieren von ListBoxen, insbesondere bei großen Datenmengen.

FAQ: Häufige Fragen

1. Wie kann ich die ListBox vor dem Befüllen mit dem Array löschen? Du kannst die Methode ListBox1.Clear verwenden, um sicherzustellen, dass die ListBox leer ist, bevor du neue Werte hinzufügst.

2. Was mache ich, wenn ich die Werte nicht in der ListBox anzeigen möchte? Du kannst die Werte auch in einer anderen Struktur, wie z.B. in einem Arbeitsblatt, ausgeben. Ändere einfach die Zielzelle im Code, um die Werte dort einzufügen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige