158 Aufrufe
Gefragt in Tabellenkalkulation von paul288 Einsteiger_in (90 Punkte)
Bearbeitet von mickey

Hallo M.O.,

ich komme mal wieder mit einer neuen Anfrage, da ich nicht mehr weiter weiß. In meinem Sheet in welchem Personalkosten über ein Geschäftsjahr hinweg getrackt werden, gibt es in Spalte A ein grünen mitwanderten Button. Über diesen kann man die aktuelle Funktion kopieren oder man würde hier eine neue Funktion einführen. Ersteres klappt, ist jedoch bestimmt nicht optimiert.

Bei der Funktion "neue Funktion" komme ich kein Stück weiter. Die Funktionsnummern werden basierend auf dem Standort fortlaufend geführt, bedeutet, wenn ich eine neue Funktion am Standort "200 Standort 1" einfügen möchte, würde die Funktionsnummer 200-.... (höchste Nummer+1) sein.

Diese Funktionsnummer sollte dann als Vorschlag in Textbox1 erscheinen. Es gibt individuelle Fälle wo diese überschrieben werden kann. Bei einer Überschreibung sollte dann aber geprüft werden, ob es diese Nummer gibt und wenn ja die Meldung kommen, dass eine vorhanden ist - hier müsste dann der Loop erneut starten, dass die höchste Nummer unter Berücksichtigung des Standortes angezeigt wird.

Besteht die Möglichkeit diese Funktion einzustellen? 

Sollte der Bindestrich Probleme machen, so kann dieser auch weg.

Nachdem ich ein Laie bin, wäre ich dir sehr dankbar, wenn du dir das Sheet ansehen kannst. Es arbeitet aufgrund den Formeln und Makros sehr langsam, aber ich kenne leider keine besseren oder performanteren Möglichkeiten.

Bei den Spalten Y bis AV ist eine SUMMEWENNS Formel drin, bei welchem aber die Gefahr besteht, dass Werte doppelt geführt werden, sollte im Change-Log das Datum nicht richtig gesetzt sein.

Datei: https://supportnet.de/forum/?qa=blob&qa_blobid=3131254416818108373

Danke und liebe Grüße

Paul

*Admininfo: Threadtitel editiert

15 Antworten

+1 Punkt
Beantwortet von m-o Profi (19.9k Punkte)
Hallo Paul,

bitte stelle deine Frage allgemein und nicht nur an mich.

Ich werde mir das mal anschauen.

Gruß

M.O.
0 Punkte
Beantwortet von paul288 Einsteiger_in (90 Punkte)
Hallo M.O.,

ich hoffe du entschuldigst mich. Kann ich es editieren?

Danke und einen schönen Abend
0 Punkte
Beantwortet von m-o Profi (19.9k Punkte)

Hallo Paul,

ich habe mir mal deine Datei angeschaut.

Ich habe dir mal deine "Neue Funktion" eingerichtet. Hier ist die bearbeitete Datei: Download

Ich weiß nicht, ob wenn ein Mitarbeiter auf zwei Standorte verteilt ist, dieser auch eine neue Nummer bekommt. Falls das so ist, würde ich die "Neue Funktion" automatisch nach dem Kopieren des Mitarbeiters starten.
Sollte es auch Möglich sein, dass es zwei Datensätze mit der selben Nummer gibt, dann würde ich einmal eine Kopierfunktion und einmal die Neuanlage anbieten (also im Prinzip kopieren mit anschließender neuer Funktion).
Das sehr langsame Arbeiten konnte ich jetzt nicht feststellen.
Mit deiner Aussage
Bei den Spalten Y bis AV ist eine SUMMEWENNS Formel drin, bei welchem aber die Gefahr besteht, dass Werte doppelt geführt werden, sollte im Change-Log das Datum nicht richtig gesetzt sein.
kann ich leider überhaupt nichts anfangen (da ich mich auch nicht tiefer in deine Datei eingearbeitet habe).
Gruß
M.O.
0 Punkte
Beantwortet von paul288 Einsteiger_in (90 Punkte)

Hallo M.O.

OMG die Suche und Anzeige der nächsten freien Nummer ist MEEEEGA :) vielen lieben Dank für deine schnelle Rückmeldung.

Krass, ich habe vollkommen die Verteilung auf den zweiten Standort vergessen. Ich habe dein Makro (ich hoffe das ist ok) kopiert und eine weitere Combobox sowie eine weitere Textbox kopiert. Auch hier wird nun deine Programmierung angezeigt.

Ich habe mir überlegt (falls das überhaupt geht), dass man über eine Checkbox auswählt, ob die neue Funktion auf zwei Standorte verteilt werden soll. Kann man das so einstellen, das die Userform mit der Checkbox deaktiviert startet und Combobox 2 sowie Textbox 2 ausgegraut sind und nur dann aktiv werden, wenn die Checkbox gewählt ist?

Die Formatprüfung ist einfach nur traumhaft, dass geprüft wird, ob die Branch überhaupt vorhanden ist. Es kommt sehr selten vor, dass neben eine existierende Funktionsnummer eine zweite geschaffen wird. Diese markieren wir in der Regel wie folgt: 200-0001-01. Ist das aufwändig mitzuteilen, dass eine existiert und ob man eine zweite schaffen will, die dann so ergänzt wird?

Bei Übernehmen sollte das Makro nur eine neue Zeile mit der neuen Funktionsnummer (oder Nummern) unterhalb einfügen. Sorry, das habe ich gar nicht im ersten Thread geschrieben.

In der Beispieldatei wird die neue Funktionsnummer in der aktuellen Zeile übernommen bzw. die existierende durch die neue überschrieben. Bei mir kam keine Meldung, dass die Nummer existiert, wenn ich eine bestehende eingegeben habe. Vielleicht habe ich aber nicht richtig ausgeführt.

Ich danke dir taaaaaaaaaaaaaaaaaaaaaausend Mal hierfür.

Ergänzte Userform: https://supportnet.de/forum/?qa=blob&qa_blobid=8744328136970602041

Gute Nacht

Paul

0 Punkte
Beantwortet von paul288 Einsteiger_in (90 Punkte)
Mir ist gerade noch was eingefallen. Wenn die Funktion gesplittet ist, kann das rein theoretisch (aktuell noch nicht aber wohlmöglich in Zukunft) auch an einem Standort sein. Das wiederum bedeutet, dass wen z.B. bei der ersten und zweiten Combobox dieselbe Auswahl steht, die zweite Combobox um einen Wert höher liegen müsste. Sorry vielmals für die Umstände. Ich habe nur bei Erstellung gar nicht daran gedacht.
0 Punkte
Beantwortet von m-o Profi (19.9k Punkte)

Hallo Paul,

zurzeit sieht das Makro so aus, dass eine bereits bestehende Nummer nicht übernommen wird, da ich ja keine Ahnung habe, was du in diesem Fall machen willst.

Die Makros kannst du ganz nach belieben verwenden. Ich zeige dir nur einen Weg auf, wie man ein Problem lösen kann, was du daraus machst, liegt dann bei dir wink.

Wegen deiner anderen Fragen schaue ich mir die neue Datei an.

Gruß

M.O.

0 Punkte
Beantwortet von paul288 Einsteiger_in (90 Punkte)

Hi M.O.,

Danke vielmals :)

Ich versuche alles zu Lesen und zu verstehen, aber das mit dem Array einlesen, scheint so komplex, also wie du die Daten einliest aber dann an einer bestimmten Stelle wieder holst ist für mich unbegreiflich auch wenn du das so schön dargestellt hast.

Was die Frage mit bereits vorhanden Nummern angeht, wäre das hier:

Diese markieren wir in der Regel wie folgt: 200-0001-01. Ist das aufwändig mitzuteilen, dass eine existiert und ob man eine zweite schaffen will, die dann so ergänzt wird?

Lieben Dank und einen schönen Tag

Paul

0 Punkte
Beantwortet von m-o Profi (19.9k Punkte)

Hallo Paul,

zu den Arrays: Das sind Datenfelder, in denen man mehrere Werte speichern kann. Das hat den Vorteil, dass die Daten nicht mehrfach aus dem Tabellenblatt ausgelesen werden müssen, was das Makro schneller macht.

Bei der Initialisierung deiner Userform "Neue Funktion" wird die Spalte A mit den vorhandenen Nummern eingelesen, sowie aus dem Tabellenblatt Index die Standortzahlen (Branch). Die beiden Datenfelder sind so deklariert (als Global in einem allgemeinen Modul), dass diese auch in anderen Makros genutzt werden können (z.B. bei der Kontrolle des Standortes und der Nummer).

Beispiel: Bei der Auswahl des Standorts soll die neue höchste Nummer dieses Standorts gesucht werden. Dazu musst du in der Spalte A des Tabellenblatts "2021-2022 - FCBase(EMPLOYEES)" jede Zeile durchlaufen, um die aktuell höchste Nummer des Standorts zu finden. Bei jeder Änderung der Combobox1 (Standort) müsstest du also auf die Tabelle zugreifen und Zeile für Zeile die Daten einlesen.

Wenn ich aber die Daten in ein Datenfeld einlese, habe ich nur einmal - bei der Initialisierung der Userform - einen Zugriff auf die Tabelle. Danach liegen die Daten im Speicher und sind sofort verfügbar.

Ich gebe zu, dass für einen Anfänger die Arrays schwierig zu verstehen sind.

Hier mal ein kleines Tutorial: Arrays

Das mit der Split-Funktion und der weiteren Ergänzung sollte zu machen sein.

Gruß

M.O.

0 Punkte
Beantwortet von paul288 Einsteiger_in (90 Punkte)
Hallo M.O.,

besten Dank hierfür. Ich bin auch schon am Lesen. Das ist total interessant, wenn auch sehr komplex :)

Einen schönes Restwochenende

Paul
+1 Punkt
Beantwortet von m-o Profi (19.9k Punkte)

Hallo Paul,

ich habe mal etwas gebastelt. Schau mal, ob das so funktioniert, wie du willst: Download bearbeitete Beispieldatei

Gruß

M.O.

...