Const SpalteKommt% = 2
Const SpalteGeht% = 3
Private Sub cboMitarbeiter_Click()
Cells(cboMitarbeiter.ListIndex + 2, 1).Select
if activecell = 0 then
activecell.offset(1,0).select
end if
txtkommt001 = Cells(ActiveCell.Row, SpalteKommt).Text
txtgeht001 = Cells(ActiveCell.Row, SpalteGeht).Text
End Sub
Nein, Spaß beiseite.
Das mit dem Code funktioniert aber doch
nur bei einem entlassenen Mitarbeiter,
sobald ein zweiter "0"-er auftaucht stimmt
Dein Offset doch nicht mehr, oder?
gruß
mattis
Somit habe ich mir Anfangs gedacht wenn der Mitarbeiter Entlassen ist einfach die Zellen auszublenden und als Name eine Null einzufügen. Ich dachte das hätte vorteile gerade wenn man einen Mitarbeiter ausversehen gelöscht hat.
Das ganze sollte ich es je Fertig bringen soll ein Dienstplan werden für meinen Stationspfleger der für 12 Monate gilt.
Da der immer noch alles mit der Hand rechnet und somit viele Stunden alleine am Dienstplan und Abbrechnung hängt.
Ich hoffe du konntest mich einwenig verstehen.
Und nochmals vielen Dank für deine Hilfe
gruß
mattis
Jetzt: funktioniert es bis eine Zelle nach der Null
Vorher: war es eine Zelle vor der Null
Wähle ich jetzt mit der USERFORM Name5 an bleibt er einfach auf Name4 stehen
Danke im Voraus für eure Mühe
und wähle ich weiter in der Userform z.B. Name6 dann selectiert er wieder aber leider Name5
Ich bin mit SVerweis nicht so vertraut.
Aber könnte man nicht damit nach
Übereinstimmung von ComboBox und Spalte 1
suchen um anschließend die zugehörigen
Werte von Spalte 2/3 auslesen.
Das ganze mit dem Ausschluß des Wertes
0 in der 1 Spalte. Müßte doch gehen.
gruß mattis
Vielen Dank auch für deine Hilfe!
Hat mir keine Ruhe gelassen.
Ich weiß nicht wie Du die Zeiten auswertest.
Ich habe Sie in zwei TextBoxen in der Userform
eingelesen.
In Zelle E1:
=SVERWEIS(D1;A2:C8;2;0)
In Zelle F1:
=SVERWEIS(D1;A2:C8;3;0)
"A2:C8" must Du natürlich noch an
Dein Range angleichen.
gruß
mattis
Ich habe deine Idee verstanden...
Jetzt wird die Auswahl der ComboBox in Zelle D1 gesendet...
soweit funktioniert es auch !
Doch die Sverweis Formeln in E1 und F1 geben als Wert #Bezug!
zurück, obwohl ich Sie nach meinen Bedarf angepasst habe.
Was ist Falsch:
Der Code sieht jetzt so aus:
Der Wert in D1 kommt aus der ComboBox
Die Formel in E1 sieht so aus: =SVERWEIS(D1;A2:A101;2;0)
Die Formel in F1 sieht so aus: =SVERWEIS(D1;A2:A101;3;0)
Alle Sverweisformeln zeigen als Ergebnis #Bezug!
Die Mitarbeiternamen liegen in A2:A101!
in D1 wird der Name aus der ComboBox angezeigt!
Danke im Voraus für deine Hilfe
Die Formel in E1 sieht so aus: =SVERWEIS(D1;A2:C101;2;0)
Die Formel in F1 sieht so aus: =SVERWEIS(D1;A2:C101;3;0)
(Range muß alle Zellen des zu durchsuchenden Bereichs beinhalten,
nicht nur die erste Spalte)
gruß
mattis
Leider zeigen jetzt die Textfelder egal welchen Namen ich auswähle 0:00 und 0:00 an.
Bin ich wirklich so sau blöd oder ist es einfach der Tag heute...Mensch ich könnte verzweifeln : so nah vor dem Ziel
und ich bekomms einfach nicht hin.
Private Sub cboMitarbeiter_Change()
Dim c As Range
Dim SAdresse As String
With Columns(1)
Set c = .Find(cboMitarbeiter.Text, LookIn:=-4163, Lookat:=2, SearchOrder:=2)
If Not c Is Nothing Then
SAdresse = c.Address
Do
On Error GoTo ende
c.Select
If com.ListIndex < ActiveCell.Row Then Exit Sub
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> SAdresse
End If
End With
ende:
End Sub
With Columns(1)
Set c = .Find(cboMitarbeiter.Text, LookIn:=-4163, Lookat:=2, SearchOrder:=2)
If Not c Is Nothing Then
SAdresse = c.Address
Do
On Error GoTo ende
c.Select
If cboMitarbeiter.ListIndex < ActiveCell.Row Then Exit Sub
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> SAdresse
End If
End With
ende:
End Sub
Also ich glaube es funktioniert jetzt...
1.000.000 Dank für deine und für LVira ihre Hilfe und Zeit
Jetzt muß ich mir überlegen wie ich geänderte Werte in der Userform in die passende Zeile zurück schreiben kann.
Also nochmals vielen, vielen Dank
SVERWEIS(D1;A2:C101;2;0)
D1: In D1 steht der Wert/Text, der gesucht werden soll.
In Deinem Fall der ComboBox-Wert.
A2:C101 Gibt den Bereich an, der nach D1 durchsucht
werden soll.
2: Gibt die Spalte Deines Ranges A2:C101 an
(In diesem Fall also Spalte B), aus der der
Wert ausgelesen werden soll. Es wird die Zeile in dieser
Spalte B ausgegeben, in der der Wert D1 in den Spalten A-C
aufgetaucht ist.
0: gibt an, daß 100%-ige Übereinstimmung zwischen D1
und den Werten im Range vorhanden sein muß.
gruß
mattis
Zu Überlegen wäre noch, ob Du die Userform
ganz weg läßt, und die Combobox als FormControl
direkt in das Worksheet setzt und mit
Workbook_Open() oder Worksheet_Activate() die
Combobox füllst?
gruß mattis
Also bitte etwas mehr Anerkennung, wenn sich hier
ein Newbie mal durchbeißt, es gibt fast immer die
noch bessere Lösung ; )
geruhsame Nacht
mattis
Was auch immer diese Zeilen bedeuten :-)
ich werd den Code festhalten
und nicht wieder hergeben. :-)
Ich stehe auf, ziehe meinen Hut und verbeuge mich!
Nix für ungut - ich glaube ich konnte Dank dir sehr viel Lernen heute... Somit auch für Dich:
Ich stehe auf, ziehe meinen Hut und verbeuge mich!
Möchte mich nochmals ganz lieb bei Dir bedanken!
Bye Tilo F.
gruß
mattis