Clever-Excel-Forum

Normale Version: Frage bzgl. VBA und Excel
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich hätte da mal eine Frage....

Es gibt bei mir eine Datei, mit der ich arbeiten muss / soll, welche ich von einem Kollegen übernommen habe, der inzwischen in Rente ist. Ihn kann ich leider nicht mehr fragen.
Es geht um eine Zeiterfassung für Mitarbeiter.
In dieser Datei gibt es für jeden Mitarbeiter ein Arbeitsblatt und in diesen dann Zellen (Zeile 5) mit diesem Inhalt:

=@Schicht(Schichtpläne!$A$2:$NB$47;I3;$C$5)

Es gibt ein - eigentlich ausgeblendetes - Arbeitsblatt "Schichtpläne", auf dem diverse Jahresschichtverläufe vorhanden sind.
Ebenso ein Blatt mit den Mitarbeiterdaten und eines mit den Feiertagen - ebenfalls eigentlich ausgeblendet

Die einzelnen Arbeitsblätter der Mitarbeiter sind so aufgebaut, daß nur die Ausweisnummer / Personalnummer in Zelle J2 eingegeben werden muss und die Daten wie Name (Zelle P2), AMEI (X2), Werk (E2), Abteilung (G2) und Schichtplan (C5) mittels SVERWEIS aus dem Tabellenblatt "Mitarbeiter" gezogen wird.

In der Zeile 3 steht ein fortlaufendes Datum, basierend auf dem Datum, welches in Zelle C4 eingetragen wird.

Ich verstehe die obige Formel soweit, als dass sie im Arbeitsblatt Schichtpläne suchen soll, welche Schicht am Datum aus (im obigen Beispiel) I3 gemäß dem Schichtplankürzel aus C5 gearbeitet werden muss.
Aber ich verstehe leider nicht, was das "@Schicht" in der Formel zu bedeuten hat und was es bewirkt.

Was mir aufgefallen ist, ist, daß ich die Datei als *.xlsm speichern muss, weil sie Funktionen enthält, welche unter *.xlsx nicht funktionieren würden.

Daher vermute ich, daß es etwas mit Makro oder VBA zu tun haben muss.

Kann mir einer der Experten - für einen blutigen Excel-Laien verständlich - erklären, was das ist?
Und könnte man so etwas ggf. auch ohne VBA sondern nur mit "normalen" Excel-Formeln darstellen?

Ich habe mal eine Beispieldatei angehängt.

Vielen Dank schon mal im Vorfeld.
Oliver
Hi Oliver,

VBA heißt erstmal Visual Basic for Applications und ist eine Programmiersprache auf Basis von BASIC. Das bedeutet, man kann damit z.Bsp. in Excel kleine Programme erstellen, die viele Routinearbeiten erleichtern oder Sonderraufgaben erfüllen. 
Natürlich kann man, solange sich die selbsterstellte Anwendung lediglich auf Aufgaben bezieht, die Excel von Haus aus bietet, auch ohne VBA auskommen, jedoch sobald in Deiner Datei irgendwo auch nur eine selbstentwickelte Funktion aufgerufen wird, dann musst Du entweder schauen, ob das mit Excel Bordmitteln zu ersetzen geht oder darauf verzichten, wenn kein VBA eingesetzt werden soll. Ob das in Deiner Datei möglich ist, kann ich nicht sagen, weil ich sie mir nicht angeschaut habe, denn ich vermute mal, dass Dein Kollege da ordentlich Zeit und Arbeit reingesteckt hat und deutlich mehr als einen 4-Zeiler geschrieben hat. (Vielleicht sagen die, die die Datei runtergeladen haben mal was dazu...)
Da Du Dich aber, wie Du sagst, nicht auskennst, würde ich mir die Mühe sparen das ändern zu wollen. Solange es funktioniert gibt es auch keinen Grund dazu. Für Außenstehende erst recht nicht. Weshalb sollten die ihre Zeit in ein Projekt ohne weiteren Nutzen investieren? 
Allerdings, wenn Dich Deine Neugier so sehr plagt, dass Du kurz vor dem Platzen bist, steht es Dir selbverständlich frei, Dich in die Materie einzuarbeiten...

PS: Die Vermutung, dass eine xlsm Datei Makros enthält liegt nahe, ist aber nicht zwingend. Ich kann auch eine Datei ohne Makros als xlsm Datei speichern....
Hi

Der VBA Teil deiner Datei sollte durch eine einfache Index(abc;Vergleich;Vergleich) ersetzbar sein.
In D5.
Zitat:=INDEX(Schichtpläne!$B$3:$NC$35;VERGLEICH($C$5;Schichtpläne!$A$3:$A$35;0);VERGLEICH(D$3;Schichtpläne!$B$2:$NC$2;0))

Gruß Elex

PS: Leicht ist es für die Frager hier in letzter Zeit nicht gerade. Immer wird eine Bsp.Datei ausgerufen, ist eine da werden nutzlose Romane verfasst in denen steht dass die Datei nicht angesehen wurde. Confused
Danke schon mal.
Ich werde die Tage mal ausprobieren, ob man das austauschen kann.
Hintergrund der Frage war, daß wir zukünftig möglichst nix mehr mit Visual Basic oder Makros machen sollen bzw. können, weil alles im Sharepoint gespeichert werden soll.
Und - wenn ich richtig informiert worden bin - da das ein oder andere nicht (mehr) funktioniert
Hi,

das stimmt, wenn man eine Datei direkt in Sharepoint bearbeitet, dann funktionieren keine Makros. Man kann Sharepoint allerdings so einstellen, dass die Datei direkt in der Desktop-App geöffnet wird. Dann kann man auch Makros verwenden. Ich weiß allerdings nicht, ob das anderweitige Nachteile in Bezug auf gleichzeitiges Bearbeiten von Dateien mit sich bringt.
Hallöchen,

für bessere Hilfestellungen sollten die betreffenden Inhalte / Formeln / Blätter nicht geschützt sein.
(07.12.2023, 14:46)HKindler schrieb: [ -> ]Hi,

... Man kann Sharepoint allerdings so einstellen, dass die Datei direkt in der Desktop-App geöffnet wird. Dann kann man auch Makros verwenden...
Das Problem dürfte hierbei nur sein, daß es entweder a.) eine "globale" Einstellung sein muss oder b.) jeder MA diese Einstellung selbst vornimmt.

a.) wird bei uns im Unternehmen nicht klappen, weil es da Konzern-Vorgaben gibt
b.) wird bei uns nicht klappen, weil viele Leute die entsprechende Selbst-Disziplin das einzustellen nicht haben - leider.

Daher ist das leider keine Lösung. Aber dennoch danke für den Hinweis.
Hallöchen,

hat es denn mit der Formel von Elex geklappt?