Thema Datum  Von Nutzer Rating
Antwort
07.07.2020 21:19:32 Mirco
NotSolved
07.07.2020 21:58:25 Gast3333
NotSolved
Rot Werte aus einer Spalte mit dynamischen Array einlesen und als Kombinationsfeld ausgeben
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:
Gast34763
Datum:
09.07.2020 20:19:46
Views:
583
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.

In den  Datenfelder sollte jeweils 1  Städte eingetragen und in Kombinationsfeld in reduzierter Form angezeigt. 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?

 Wie als Thema schon erwähnt, Werte (ca.2200 Zeilen z.B. Städte(Hamburg, Mainz, Karlsruhe, Dortmund usw.) soll es so  Programmiert sein, 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 =

                                                gefunden = False

                               Exit For

                                            i = i + 1 'nächsten Index durchgehen Zeile

                                           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

 

'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

Else

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
07.07.2020 21:19:32 Mirco
NotSolved
07.07.2020 21:58:25 Gast3333
NotSolved
Rot Werte aus einer Spalte mit dynamischen Array einlesen und als Kombinationsfeld ausgeben
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