Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
140to144
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
140to144
140to144
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Userform

Userform
01.08.2002 20:02:35
Tilo F.

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Userform
01.08.2002 20:13:09
L.Vira
Tja, dass da nicht alle Zellen eingelesen werden muss man erstmal wissen.
Warum müssen eigentlich die entlassenen Mitarbeiter weiter
mitgeführt werden?

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



Re: Userform
01.08.2002 20:19:00
mattis
Donnerwetter, das nenn ich Arbeitsmoral,
wenn selbst die entlassenen Arbeiter noch
für ein Stündchen vorbeikommen : )

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

Anzeige
Re: Userform
01.08.2002 20:22:37
L.Vira
denke doch, dann stimmt doch die Bedingung wieder, dass die activecell = 0 ist und er wurschtelt zur nächsten.
Re: Userform
01.08.2002 20:34:32
Tilo F.
Wird ein neuer Mitabreiter aufgenommen versucht mein Userform
die nächste leere Zeile in der Tabelle Mitarbeiter zu finden wo er den neuen Mitarbeiter eintragen kann z.B.
In Zeile 3 stand schon mal ein Mitarbeiter der aber nur von Januar-März gearbeitet hat so werden in den Tabellen 01 - 12 für die Monate Berechnungen angestellt.
Kommt jetzt für den Mitarbeiter ein neuer Mitarbeitername
dann würde Excel in meiner Tabelle "12" also Dezember die Daten für Januar -März mitrechnen... Da in der Tabelle 12 z.B. eine Formel steht wie z.B. =Summe(01!B4)+Summe(02!B4)+...Summe(12!B4)

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

Anzeige
Re: Userform
01.08.2002 20:37:13
mattis
Stimmt, das Script ist pfiffig!
Nur wenn zwei nuller aufeinander folgen
(was ja in heutigen Zeiten keine Seltenheit ist)
wird's schwierig

gruß
mattis

Re: Userform
01.08.2002 20:40:41
Tilo F.
Leider funktioniert es noch nicht

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

Re: Userform
01.08.2002 20:49:01
Tilo F.
Re: Wähle ich jetzt mit der USERFORM Name5 an bleibt er einfach auf Name4 stehen

und wähle ich weiter in der Userform z.B. Name6 dann selectiert er wieder aber leider Name5

Anzeige
Re: Userform
01.08.2002 21:04:01
mattis
Klar, da alle weiteren Zellen (nicht nur die nächste)
, die einem 0 Nuller folgen ein Offset brauchen.
Deswegen mein Einwand. Es ist meiner Meinung
nach mühsehlig eine Verknüpfung zwischen
ComboBox und Zelle zu finden, da die
ComboBox nicht mehr "weiß" in welcher
Zeile die Nuller standen.

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

Anzeige
Re: Userform
01.08.2002 21:24:01
Tilo F.
Ich habe zwar schonmal mit Sverweis gearbeitet. Weiß aber auch nicht wie man mit Sverweis eine ComboBox anspricht.
Oder meinst du : Der Wert der ComboBox müßte in eine Tabellenspalte übertragen werden und dann Sverweis

Vielen Dank auch für deine Hilfe!

Lösung ?
01.08.2002 21:51:08
mattis
Halo Tilo

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

Anzeige
Re: Lösung ?
01.08.2002 22:14:00
Tilo F.
Erstmal vielen Dank an den lieben Gott das er mich gehört an und dir Unruhe gesendet hat...
Nein im Ernst vorab vielen Dank für deine Hilfe abermals...
Leider funktioniert es noch nicht...

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


Anzeige
Re: Lösung ?
01.08.2002 22:24:05
mattis
Pass mal Dein Range in den SVerweisen so an:

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

Re: Lösung ?
01.08.2002 22:33:47
Tilo
Ok hab ich gemacht : Jetzt funktionieren die Sverweise auch...

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.

Anzeige
das Ganze ist Schei....
01.08.2002 22:34:16
L.Vira
Es wir dadurch so kompliziert, weil die 0 darin vorkommen, was jeglicher Datenbanklogil zuwider ist. Listindex greift nicht, weil der nicht mit den zeilen korrespondiert. SVerweis geht auch nicht, weil der nur immer den ersten Treffer liefert. Ich hab da
noch ne Variante mit Find, probier mal, ob du damit klar kommst.
Ich habs zwar getestet aber nur flüchtig. Meld dich ggf. nochmal.


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

Anzeige
Korrektur...
01.08.2002 22:37:19
L.Vira
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 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

Re: Lösung ?
01.08.2002 22:40:04
Tilo
Habs gebacken bekommt
Die Zellformatierung war nicht korrekt in den Zellen: B,C

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

Anzeige
Zur Erläuterung
01.08.2002 22:40:11
mattis
Weil ich in Deinem früheren Thread gesehen habe,
dass du noch mehrere Spalten für kommen und gehen hast,
und Du den SVerweis noch anpassen mußt, hier eine Erklärung:

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

Re: Korrektur...
01.08.2002 22:45:21
Tilo
Ok werd ich jetzt auch probieren...
Vielen Dank abermals auch an Dich für deine Gedult,Zeit und Mühe extra für mich....
You're welcome...
01.08.2002 22:48:02
mattis
Mit Hilfe meiner Erklärung,
oder auch mit der SVerweis-Online-Hilfe
kannst Du doch die SVerweiszellen
direkt in die passende Zellen pflanzen

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

Re: das Ganze ist Schei....
01.08.2002 22:56:56
mattis
O.K., o.k., daß Sverweis immer nur den ersten Wert
liefert wußte ich nicht. Aber das Alles gleich als Schei..
zu bezeichnen finde ich unfair. Ein Versuch wars zumindest
wert, da dadurch das "0"-er-Problem eliminiert war.

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

Re: Korrektur...
01.08.2002 22:59:28
Tilo F.
Also das funktioniert auch 100%

Was auch immer diese Zeilen bedeuten :-)
ich werd den Code festhalten
und nicht wieder hergeben. :-)

Ich stehe auf, ziehe meinen Hut und verbeuge mich!

Re: das Ganze ist Schei....
01.08.2002 23:07:20
Tilo F.
Mensch Mattis jetzt hast du dich solange mit mir rumärgern müßen...
Und dann schießt LVira kurz vor Schluß mal nebenbei so einen geilen Code rein. Ist auch wenn es mir sehr geholfen hat, irgendwie ganz schön fresch oder? :-)

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.

hatte das Schei...
02.08.2002 01:12:54
L.Vira
mehr auf meinen Beitrag bezogen...
ich hatte...
02.08.2002 01:15:54
L.Vira
das Schei... auf meinen Beitrag bezogen...
Gerade solche Probleme machen die ganze sache doch erst interessant, eine simple For.. Next Schleife kann ja nun jeder.
Achso, na dann...
02.08.2002 03:43:17
mattis
Jedenfalls habe ich viel in diesen 2 Stunden viel neues dazugelernt, und das ist, so glaube ich, doch auch der
Sinn der Sache.

gruß
mattis

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige