Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
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

Auslesen und Filtern im Userform

Auslesen und Filtern im Userform
Fatih
Hallo und eine schönen nachmittag liebe leute,
ich bräuchte wiedermal eure hilfe.
Ich habe eine Userform gebastelt der nur für ablesen von Tab.einträgen dienen soll.
Auf der Userform befindet sich eine Combobox (Mitarbeiter) und 2 cmd buttons (weiter & zurück)
Ich möchte nun erreichen, dass wenn man einen mitarbeiter auf der combobox auswählt das er alle einträge vom mitarbeiter filtert und anzeigt.
Ist das vielleicht machbar?
anbei habe ich eine Testdokument hochgeladen.
https://www.herber.de/bbs/user/69144.xls
Vielen lieben dank für eure hilfe im vorhinein
lg
fatih

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Auslesen und Filtern im Userform
19.04.2010 11:16:51
JOWE
Hallo Fatih,
vllt. so?:
Private Sub ComboBox1_Change()
Sheets("Tabelle2").Select
Sheets("Tabelle2").UsedRange.AutoFilter field:=1, Criteria1:=Me.ComboBox1
End Sub

Gruß Jochen
AW: Auslesen und Filtern im Userform
19.04.2010 11:23:29
Fatih
Hallo Jochen,
vielen Dank für die rasche Antwort, hab das jetzt probiert und klappt wunderbar nur wie schaff ich das jetzt das er die gefilterten einträge in die Userform ladet und mit den Buttons vor und zurück switchen kann.
lg fatih
AW: Auslesen und Filtern im Userform
19.04.2010 12:15:15
JOWE
Hallo Fatih,
da benötigst Du gar kein gesetztes Filter in der Tabelle.
Wenn Du in deiner Userform noch ein Label 1 unterbringst, könntest Du diesen Code benutzen:
Private Sub ComboBox1_Change()
Dim sh As Worksheet
Set sh = Sheets("Tabelle2")
Label1.Caption = sh.Cells.Find(what:=ComboBox1).Row
With Me
.TextBox2 = sh.Cells(Label1.Caption, 1)
.TextBox3 = sh.Cells(Label1.Caption, 3)
.TextBox1 = sh.Cells(Label1.Caption, 2)
.TextBox4 = sh.Cells(Label1.Caption, 5)
.TextBox5 = sh.Cells(Label1.Caption, 6)
.TextBox6 = sh.Cells(Label1.Caption, 7)
.TextBox7 = sh.Cells(Label1.Caption, 8)
.TextBox8 = sh.Cells(Label1.Caption, 9)
.TextBox9 = sh.Cells(Label1.Caption, 10)
End With
End Sub

Private Sub CommandButton2_Click()
'hier die aktuelle Zeile in .Label1.caption um den Wert 1 verringern. Achtung kleiner 2  _
ware die Überschrift
'dann die Daten in die Textboxen einlesen wie nach Klick auf den Combobox-Wert
End Sub

Private Sub CommandButton3_Click()
'hier die aktuelle Zeile in .Label1.caption um den Wert 1 erhöhen. Achtung auf leere Zeilen  _
prüfen
'dann die Daten in die Textboxen einlesen wie nach Klick auf den Combobox-Wert
End Sub

Einiges mußt Du jetzt aber selbst basteln...
Gruß
Jochen
Anzeige
AW: Auslesen und Filtern im Userform
19.04.2010 12:38:00
Fatih
Hallo Jochen,
das wird jetzt eine richtige Herausforderung für mich :-) aber trotzdem vielen Dank für dein Tipp.
Was für eine Funktion hat das Label dann?
lg
AW: Auslesen und Filtern im Userform
19.04.2010 14:52:40
Fatih
Hallo Jochen,
habe es jetzt so umgesetzt wie du es beschrieben hast.
Das mit dem label hat funktioniert, aber mit den beiden buttons komm ich einfach nicht weiter.
wäre es vielleicht zuviel verlangt wenn du noch einmal drüber schauen könntest.
Das hab eingefügt, nur es funkt. nicht. :-(
Private Sub CommandButton3_Click()
Dim i As Long
If Label11.Caption = ComboBox1.ListIndex + 1 Then MsgBox ("kein weiterer Datensatz")
End Sub

https://www.herber.de/bbs/user/69152.xls
lg aus wien
fatih
Anzeige
Code-Vorschlag
19.04.2010 19:38:58
Erich
Hi Fatih,
die Funktion der beiden Buttons "Vor" und "Zurück" habe ich jetzt mal so verstanden,
dass hier nur zwichen verschiedenen Sätzen des jeweils ausgewählten Mitarbeiters gewechselt werden soll.
Der Code der UF sieht bei mir so aus:

Option Explicit
Dim lngAnz As Long
Dim arrZnr() As Long
Private Sub UserForm_Initialize()
Dim objDic As Object, lngZ As Long, arrW, zz As Long
Set objDic = CreateObject("Scripting.Dictionary")
With Sheets("Tabelle2")
lngZ = Cells(Rows.Count, 1).End(xlUp).Row - 1
arrW = Application.Transpose(Cells(2, 1).Resize(lngZ))
End With
For zz = 1 To lngZ
objDic(arrW(zz)) = 0
Next zz
ComboBox1.List = objDic.keys
End Sub
Private Sub ComboBox1_Change()
Dim lngZ As Long, rngF As Range, lngErst As Long
With Worksheets("Tabelle2")
lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row
lngAnz = 0
ReDim arrZnr(1 To lngZ)
With .Cells(2, 1).Resize(lngZ - 1)
Set rngF = .Find(What:=ComboBox1, after:=.Cells(lngZ - 1), _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=True, SearchFormat:=False)
If Not rngF Is Nothing Then
lngErst = rngF.Row
Do
lngAnz = lngAnz + 1
arrZnr(lngAnz) = rngF.Row
Set rngF = .FindNext(rngF)
Loop While Not rngF Is Nothing And rngF.Row  lngErst
End If
End With
End With
ReDim Preserve arrZnr(1 To lngAnz)
Label11.Caption = 1
myFill
End Sub
Private Sub CommandButton2_Click() ' Zurück
If Label11.Caption = lngAnz Then
MsgBox "Das ist schon der letzte Datensatz für" & vbLf & ComboBox1
Else
Label11.Caption = CLng(Label11.Caption) + 1
myFill
End If
End Sub
Private Sub CommandButton1_Click() ' Beenden
Unload Me
End Sub
Sub myFill()
With Worksheets("Tabelle2").Rows(arrZnr(Label11.Caption))
TextBox1 = .Cells(2)
TextBox2 = .Cells(4)
TextBox3 = .Cells(3)
TextBox4 = .Cells(5)
TextBox5 = .Cells(6)
TextBox6 = .Cells(7)
TextBox7 = .Cells(8)
TextBox8 = .Cells(9)
TextBox9 = .Cells(10)
End With
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Super! oT
19.04.2010 21:05:36
jowe
AW: Code-Vorschlag
19.04.2010 21:59:10
Fatih
Hallo und einen schönen Abend,
Ich bedanke mich recht herzlich Erich, das klappt wunderbar, totalll super. Bin echt begeistert.
lg aus wien

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige