Thema Datum  Von Nutzer Rating
Antwort
Rot Werte aus einer Spalte mit dynamischen Array einlesen und als Kombinationsfeld ausgeben
07.07.2020 21:19:32 Mirco
NotSolved
07.07.2020 21:58:25 Gast3333
NotSolved
09.07.2020 20:19:46 Gast34763
NotSolved
09.07.2020 20:23:44 Gast53755
NotSolved
10.07.2020 18:42:29 xlKing
NotSolved
11.07.2020 11:50:32 Gast13115
NotSolved

Ansicht des Beitrags:
Von:
Mirco
Datum:
07.07.2020 21:19:32
Views:
972
Rating: Antwort:
  Ja
Thema:
Werte aus einer Spalte mit dynamischen Array einlesen und als Kombinationsfeld ausgeben
Hallo zusammen Da ich noch absoluter VBA Einsteiger bin, benötige ich einen Rat von VBA Experten/Profis. Folgendes Problem habe ich : In einer Spalte habe ich ca. 2200 Einträge(Städte). Nun will ich diese Einträge aber in einem Kombinationsfeld ausgeben, da ich aber viele Städte mehr als 1 mal darin habe z.B. Dortmund 10 mal oder Hamburg 12 mal möchte ich das in dem Kombinationsfeld nur jeweils 1 mal jede Stadt anzeigt. Die Suche soll ab Zeile 2(I2) beginnen, habe zwar die zugewíesen und beim ersten durchlauf zeigt er auch die erste Stadt an, sobald aber die 3 Zeile angesteuert werden soll zeigt er nur "",keine Ahnung warum. Er soll in die Datenfelder die Städte eintragen und in Kombinationsfeld in reduzierter Form anzeigen. Nach einiger Suche in diversen VBA Büchern, habe ich als Idee von einem AutoFilter gelesen.(versuche sind im VBA Code ) Ich möchte das Problem, wenn möglich aber mit z.B. For-Schleifen & IfthenElse Verzweigungen lösen, geht das überhaupt? Ich möchte wie als Thema schon erwähnt, Werte (ca.2200 Zeilen z.B. Städte(Hamburg, Mainz, Karlsruhe, Dortmund usw.) so Programmieren, dass jede Stadt nur 1 x im Kombinationsfeld dargestellt wird. Hier mein VBA-Code: Private Sub UserForm_Initialize() Dim Zeile As Integer Zeile = 2 Dim Staedte() As String Dim i As Integer Dim Meldung As String Dim gefunden As Boolean gefunden = False Dim longZeileMax As Long 'Ab Zeile 2 Von Spalte I beginnen(Karlsruhe)/Speichern von Stadt Wert in Zelle I2 ReDim Preserve Staedte(i) Staedte(i) = Range("I2") 'Wiederhole solange Zeilen nicht leer sind Do While Cells(Zeile, 9) <> "" ReDim Preserve Staedte(i) 'Speichern der Städte For i = 0 To UBound(Staedte) ' mit Ubound die Obergrenze setzen If Staedte(i) = Cells(Zeile, 9) Then 'Wenn Falsch wahr wird dann geht es über die Exit For raus in die gefunden = False Exit For i = i + 1 'nächsten Index durchgehen Zeile = Zeile + 1 'nächste Zeile durchgehen End If Next ReDim Preserve Staedte(i) 'hier hinein,dann in die nächste For Schleife For i = 0 To UBound(Staedte) If Staedte(i) = Cells(Zeile, 9) Then Me.cb_Staedte_Auswahl.ListIndex = 1 'ab Kombinationsfeld ab Stelle 0 beginnen Else 'With Tabelle1 'Versuch eines Filters leider stürzt das Programm nach kurzer Zeit ab '' .Range("L:L").ClearContents ' Einträge in Spalte L löschen 'Eindeutige Werte ermitteln '' '' .Range("I1").CurrentRegion.Column(2).AdvancedFilter _ '' Action:=xlFilterCopy, CopyToRange:=.Range("L1"), Unique:=True '' '' longZeileMax = .Cells(.Rows.Count, 6).End(xlUp).Row '' Me.cb_Länder_Auswahl.RowSource = Range("L2:L" & longZeileMax).Address '' Me.cb_Länder_Auswahl.ListIndex = 0 ' ' 'End With Me.cb_Staedte_Auswahl.AddItem Cells(Zeile, i) End If i = i + 1 Zeile = Zeile + 1 Next Loop End Sub Vielen Dank für Eure Unterstützung Grüße Mirco

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Werte aus einer Spalte mit dynamischen Array einlesen und als Kombinationsfeld ausgeben
07.07.2020 21:19:32 Mirco
NotSolved
07.07.2020 21:58:25 Gast3333
NotSolved
09.07.2020 20:19:46 Gast34763
NotSolved
09.07.2020 20:23:44 Gast53755
NotSolved
10.07.2020 18:42:29 xlKing
NotSolved
11.07.2020 11:50:32 Gast13115
NotSolved