Anzeige
Archiv - Navigation
1208to1212
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
ComboBox soll nur bestimmte Daten einlesen
reiner
hallo Leute,
https://www.herber.de/bbs/user/74380.xls
in mitgesandter Beispieltabelle können Namen aus einer ComboBox ausgewählt werden. Der jeweils ausgewählte Eintrag wird in der Tabelle gelb markiert angezeigt.
Die ComboBox liest derzeit sämtliche Zeilen ein; nun soll die Programmierung aber dahingehend geändert werden dass nur noch Namen angezeigt werden ohne den Zusatz "ungültig" in Spalte "L". Namen mit anderen Einträgen in dieser Spalte sollen weiterhin eingelesen werden.
Die Schaltfläche "Beenden" schließt die Tabelle ohne Rückfrage.
Hat jemand einen Vorschlag zur Abänderung der Programmierung?
mfg
reiner
AW: ComboBox soll nur bestimmte Daten einlesen
13.04.2011 14:38:29
JoWE
Hallo Reiner,
so vllt.?
Private Sub UserForm_Initialize()
ActiveSheet.Unprotect
[a2].CurrentRegion.Select
Namen = Selection.Rows.Count
For Anzahl = 2 To Namen 'Familien- und Vornamen einlesen
If Selection.Cells(Anzahl, 12)  "ungültig" Then
mText = Selection.Cells(Anzahl, 1) & "  " & Selection.Cells(Anzahl, 2)
frmAdressen.cboNamen.AddItem mText
End If
Next Anzahl
Range("A1").Select
End Sub

Gruß
Jochen
AW: ComboBox soll nur bestimmte Daten einlesen
13.04.2011 14:48:43
Rudi
Hallo,
so?
Private Sub UserForm_Initialize()
ActiveSheet.Unprotect
Dim oCBO As Object, rngC As Range
Set oCBO = CreateObject("Scripting.dictionary")
For Each rngC In Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))
If rngC.Offset(, 11) = "ungültig" Then
'nix
Else
oCBO(rngC.Value & rngC.Offset(, 1).Value) = Array(rngC.Value, rngC.Offset(, 1).Value)
End If
Next rngC
cboNamen.List = Application.Transpose(Application.Transpose(oCBO.items))
cboNamen.ColumnCount = 2
Range("A1").Select
End Sub

Gruß
Rudi
Anzeige
AW: ComboBox soll nur bestimmte Daten einlesen
13.04.2011 16:03:43
reiner
hallo Jochen und Rudi,
ich habe eure Vorschläge nacheinander in meine Beispieldatei eingefügt
Wenn ich den ersten Eintrag aus der CB wähle stimmt die Anzeige in der UF mit der Tabelle überein.
Der 2.Eintrag (Erich Hinz, Zeile 3) soll unterdrückt werden, wird aber angezeigt.
Nochmal: die den Zeilen 3,8 und 9 zugeordneten Einträge sollen unterdrückt werden, alle anderen Namen sollen in die CN eingelesen werden, selbst wenn sie doppelt vorhanden sind.
mfg
Reiner
AW: ComboBox soll nur bestimmte Daten einlesen
13.04.2011 16:17:52
hary
Hallo reiner

Private Sub UserForm_Initialize()
ActiveSheet.Unprotect
[a2].CurrentRegion.Select
Namen = Selection.Rows.Count
For Anzahl = 2 To Namen 'Familien- und Vornamen einlesen
If Cells(Anzahl, 12)  "ungültig" Then
mText = Selection.Cells(Anzahl, 1) & "  " & Selection.Cells(Anzahl, 2)
frmAdressen.cboNamen.AddItem mText
End If
Next Anzahl
Range("A1").Select
End Sub

gruss hary
Anzeige
mit doppelten, ohne ungültig
13.04.2011 16:21:39
Rudi
Hallo,
dann so:
Private Sub UserForm_Initialize()
ActiveSheet.Unprotect
Dim oCBO As Object, rngC As Range
Set oCBO = CreateObject("Scripting.dictionary")
For Each rngC In Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))
If rngC.Offset(, 11) = "ungültig" Then
'nix
Else
oCBO(rngC.Row) = Array(rngC.Value, rngC.Offset(, 1).Value)
End If
Next rngC
cboNamen.List = Application.Transpose(Application.Transpose(oCBO.items))
cboNamen.ColumnCount = 2
Range("A1").Select
End Sub

Gruß
Rudi
AW: mit doppelten, ohne ungültig
13.04.2011 16:48:53
reiner
hallo Rudi,
hast du die Programmierung getestet?
bei mir wird z. B.bei dem 1. Eintrag (CB) von MÜLLER, SEPP Zeile 6 anstatt Zeile 7 markiert, das ist falsch!
Bei dem 2. Eintrag (CB) von MÜLLER, SEPP Zeile 7 anstatt Zeile 10 markiert, das ist falsch!
Bei dem 1. Eintrag (CB) von HINZ, ERICH Zeile 3 anstatt Zeile 4 markiert, das ist falsch!
wird bei dir alles richtig markiert?
mfg
Reiner
Anzeige
AW: mit doppelten, ohne ungültig
13.04.2011 17:55:33
hary
Hallo Reiner
Der Code ist schon richtig und funzt. Nur kann Du jetzt nicht mehr mit:

Cells(cboNamen.ListIndex + 2, 1).Text

die Boxen fuellen. Der Index stimmt nicht mehr.
gruss hary
AW: mit doppelten, ohne ungültig
13.04.2011 20:18:51
reiner
hallo hary,
und was mache ich nun?
mfg
reiner
AW: mit doppelten, ohne ungültig
13.04.2011 21:20:56
hary
hallo Reiner
Wie waer's wenn Du die Adressen ueber einen Zusatzbutton aktuellisierst?
Also Name waehlen, ausgewaehlte Adresse aendern und eintragen in die betr. Zeile.
Dann gibt es keine ungueltigen mehr. Oder brauchst Du die ungueltigen?
gruss hary
AW: mit doppelten, ohne ungültig
13.04.2011 21:08:30
Rudi
Hallo,
das hab ich natürlich nicht getestet. Ich hab deine Frage beantwortet. Den restlichen Code habe ich mir nicht angeschaut.
Wenn du die ungültigen weglässt, korrespondiert die CB selbstverständlich nicht mehr mit der Liste. Wie auch?
Letztlich musst du die Zeilen-Nr auch in der CB als 3.Spalte (Spaltenbreite 0) merken und anhand der den Eintrag vornehmen.
Gruß
Rudi
Anzeige
hallo hary und rudi
14.04.2011 08:02:30
reiner
euren Rückmeldungen entnehme ich dass meine Vorstellung mit den vorh. Tabellendaten nicht realisierbar ist.
Ich werde wohl eine 3. Spalte in der CB einrichten die den Status Ungültig/gültig dokumentiert, oder ich lösche die Zeile mit dem Zusatz "ungültig"
vielen Dank für eure Rückmeldungen
reiner

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige