Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1572to1576
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bitte um Rat - Code zu Redim Preserve

Bitte um Rat - Code zu Redim Preserve
20.08.2017 17:20:28
Stefan
Hallo zusammen,
Ich bitte euch um eine kleine Hilfe.
Ich habe eine Inventarliste zu meinem Haushalt. Diese möchte ich nach Kategorien wie "Haushalt" oder "Leben" filtern können. Die betreffenden Zeilen sollen in ein Array geladen werden.
Das klappt auch beim ersten Suchtreffer.
Wenn beim zweiten Treffer das Array um eine Dimension nach unten verändert werden soll, kommt der Fehler "Index außerhalb des gültigen Bereiches".
Bitte, was übersehe ich ?
Sub LVFiltern(strSuche As String)
Dim strSelection() As String
Dim intAnzahl As Integer
Dim i As Integer
Dim z As Integer
Dim x As Integer
Dim y As Integer
intAnzahl = 0
With tblHaushalt.ListObjects("tabHaushalt")
For i = 2 To .Range.Rows.Count
If .Range(i, 3).Value = strSuche Then
intAnzahl = intAnzahl + 1
ReDim Preserve strSelection(1 To intAnzahl, 1 To .Range.Columns.Count)
For z = 1 To .Range.Columns.Count
strSelection(intAnzahl, z) = .Range(i, z)
Next z
End If
Next i
End With
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 17:22:45
Hajo_Zi
der erste Wert kann nicht verändert werden.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 17:36:59
Stefan
Guten Abend Hajo_Zi,
bitte um eine genauere Beschreibung.
In meinem Kopf ist folgende Überlegung:
Beim 1. Durchlauf soll das Array eine Tabelle mit 1 Zeile und 13 Spalten abbilden.
Beim 2. Durchlauf soll das Array dann 2 Zeilen und 13 Spalten haben.
Was meinst du mit "1.Wert".
Gruß Stefan
Anzeige
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 17:38:20
Hajo_Zi
Hallo Stefan,
ReDim Preserve strSelection(1 To intAnzahl,
das ist für mich der erste Wert.
Gruß Hajo
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 17:55:00
Stefan
Ich verändere das doch durch intAnzahl = intAnzahl +1?! Oder
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 18:19:37
Hajo_Zi
ja
Gruß Hajo
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 18:33:08
Stefan
Ah, ok. Durch den Tipp von Sepp habe ich verstanden was Sie mir sagen wollten. Ich kann nur den zweiten Wert verändern. Vielen Dank. Gruß Stefan
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 17:39:42
Sepp
Hallo Stefan,
in einem Array kannst du immer nur die letzte Dimension ändern.
Hier eine Möglichkeit.
Sub LVFiltern(strSuche As String)
Dim varOutput() As Variant
Dim intAnzahl As Integer
Dim i As Integer

With tblHaushalt.ListObjects("tabHaushalt")
  For i = 2 To .Range.Rows.Count
    If .Range(i, 3).Value = strSuche Then
      Redim Preserve varOutput(intAnzahl)
      intAnzahl = intAnzahl + 1
      varOutput(intAnzahl) = .Range(i, 1).Resize(1, .Range.Columns.Count)
    End If
  Next i
End With

'Ausgabe
Range("X1").Resize(UBound(varOutput, 1) + 1, UBound(varOutput(0), 2)) = _
  Application.Transpose(Application.Transpose(varOutput))

End Sub

Gruß Sepp

Anzeige
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 17:57:02
Stefan
Hallo Sepp,
wie stelle ich das nun an, dass das Array eine Tabelle abbildet oder gibt es noch einen anderen Ansatz eine ListView zu filtern?
Was wäre die "Letzte Dimension"?
gruß
Stefan
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 18:01:22
Sepp
Hallo Stefan,
Array( 1 to 1, 1 to 4)
1 to 1 ist die erste Dimension, 1 to 4 die Zweite. Und man kann nur die letzte, in diesem Fall also die zweite Dimension während der Laufzeit verändern!
Beschreibe doch genauer, was du erreichen willst. Was soll den mit dem Array anschließend geschehen?
Vielleicht wäre auch eine Beispieldatei hilfreich.
Gruß Sepp

Anzeige
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 18:24:44
Stefan
Hallo Sepp,
hier der Ausschnitt aus der Excel Mappe. Mit STRG+h lädst du das Form.
Mitells RadioButtons möchte ich die Anzeige in der ListView filtern.
https://www.herber.de/bbs/user/115599.xlsm
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 19:13:16
Sepp
Hallo Stefan,
ich würde eine anderen Weg gehen und die Daten in der Tabelle Filtern und anschließend einlesen, aber ich hab mal deinen Code zum Füllen des ListViews etwas angepasst.
https://www.herber.de/bbs/user/115600.xlsm
Gruß Sepp

Anzeige
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 20:34:51
Stefan
Hallo Sepp, welchen weg würdest du gehen?
AW: Bitte um Rat - Code zu Redim Preserve
20.08.2017 20:42:52
Stefan
HAllo Sepp. Ahh, Nun habe ich es verstanden. Ich danke dir. Wünsche eine gute Woche.
GRU?
stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige