Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1356to1360
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
Eingabemaske "Doppelte Eingabe"
11.04.2014 11:52:10
Dauergast
Hallo,
ich habe mal wieder ein Problem mit meinen Eingabemasken und habe euch eine Beispieldatei deshalb hochgeladen:
https://www.herber.de/bbs/user/90113.xlsm
Ich habe die beiden Eingabemasken Schulungen und Erfindungen. Mache ich nun in eine der beiden Eingabemasken einen neuen Eintrag, wird dieser in der Listbox der jeweils anderen Eingabemaske auch aufgeführt. Im Beispiel habe ich bei AA Schulung und Schulungstermin eingetragen und bei BB eine Erfindung und die dementsprechenden Daten. Mein Ziel wäre es also, dass in der Listbox der Eingabemaske Schulungen nur AA auftaucht und in der Listbox der Eingabemaske Erfindungen nur BB auftaucht. Ist dies irgendwie möglich? Wie muss ich dazu den Code verändern?
Vielen Dank im Voraus!

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

Betreff
Datum
Anwender
Anzeige
AW: Eingabemaske "Doppelte Eingabe"
11.04.2014 12:39:09
Tino
Hallo,
versuche es mal so. Die Daten AA werden in einem neuen Array gesammelt!
Private Sub UserForm_Initialize()
'UserForm Funktionsweise
Dim lZeile As Long, arrList, NewAR(), nRow&
Const cName$ = "AA" 'Name anpassen
ClearFields 'Alle Textboxen leeren
With Tabelle1
With .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
arrList = .Resize(, 2)
nRow = Evaluate("=CountIF(" & .Address(External:=True) & ",""" & cName & """)")
If nRow > 0 Then
ReDim Preserve NewAR(1 To nRow, 1 To UBound(arrList, 2))
End If
End With
End With
If nRow > 0 Then
nRow = 0
For lZeile = 1 To UBound(arrList)
If arrList(lZeile, 1) = cName Then
nRow = nRow + 1
NewAR(nRow, 1) = arrList(lZeile, 1)
NewAR(nRow, 2) = lZeile + 1 'Start in Zeile 2, da in Zeile 1 Überschriften
End If
Next
ListBox1.List = NewAR
End If
'alle vorhandenen Einträge werden in die Listbox geladen
End Sub
Gruß Tino

Anzeige
AW: Eingabemaske "Doppelte Eingabe"
11.04.2014 12:57:51
Dauergast
Hallo Tino,
danke für deine Antwort! Folgendes Problem habe ich allerdings mit deinem Code: Es wird zwar bei der Eingabemaske Schulungen jetzt nur AA angezeigt, doch wenn ich einen neuen Eintrag über die Eingabemaske Schulungen eingebe z.B. CC wird dieser in der Listbox nicht angezeigt.
Liegt das an diesem Codeausschnitt: Const cName$ = "AA" ?
Wie kann ich erreichen, dass dann auch die jeweiligen neuen Einträge angezeigt werden?

AW: Eingabemaske "Doppelte Eingabe"
11.04.2014 13:39:28
Tino
Hallo,
ja weil nur AA angezeigt wird!
Kann man lösen indem man anstatt die neue Liste komplett neu einzulesen,
diesen Eintrag einfach nur hinzufügt.
Beim erneuten Aufruf wird wieder nach AA gefiltert.
Private Sub CommandButton2_Click()
'Button Eintrag löschen
Dim lIndex As Long
If ListBox1.ListIndex = -1 Then Exit Sub
'  lIndex = ListBox1.ListIndex
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
Tabelle1.Rows(ListBox1.Column(1)).Delete
ListBox1.RemoveItem ListBox1.ListIndex
End Sub
Private Sub CommandButton3_Click()
'Button Eintrag speichern
Dim lZeile As Long, lIndex As Long
If ListBox1.ListIndex = -1 Then
lZeile = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row + 1
'Wenn kein Datensatz in der ListBox markiert wurde, wird Speicherroutine beendet
Else
lZeile = ListBox1.Column(1) 'Wenn Datensatz vorhanden, wird Speicherroutine durchgeführt
End If
lIndex = ListBox1.ListIndex
If Trim(TextBox1.Text) = "" Then
Exit Sub
Else
With Tabelle1
.Cells(lZeile, 1).Value = Trim(TextBox1.Text)
.Cells(lZeile, 2).Value = TextBox2.Text
.Cells(lZeile, 3).Value = TextBox3.Text
ListBox1.AddItem Trim(TextBox1.Text)
ListBox1.List(ListBox1.ListCount - 1, 1) = lZeile
End With
End If
End Sub
Gruß Tino

Anzeige
AW: Eingabemaske "Doppelte Eingabe"
11.04.2014 14:56:07
Dauergast
Hallo Tino,
nochmal danke für deine Antwort, aber ich stehe leider immer noch auf dem Schlauch. Auch wenn ich deinen Code eingebe, ist es nach wie vor so, dass bei einem neuen Eintrag also z.B CC bei der Eingabemaske Schulungen dieser nicht angezeigt wird...Im Endeffekt möchte ich in der Listbox nur diejenigen Daten angezeigt bekommen, die ich auch in die jeweilige Eingabemaske eingegeben habe. Ich möchte also nicht, dass sich die eingegeben Daten in die Eingabemaske Schulungen bzw. Eingabemaske Erfindungen vermischen und damit auch dann so in der Listbox auftauchen...

AW: Eingabemaske "Doppelte Eingabe"
11.04.2014 16:20:07
Tino
Hallo,
dann würde ich dies nicht am Namen AA oder BB fest machen.
Hier eine Variante mit Hilfsspalten wo die Zuordnung festgehalten wird.
https://www.herber.de/bbs/user/90119.xlsm
Gruß Tino
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige