Aus Groß mach Klein, aber wie?

Hallo hilfreiche Gemeinde,
ich komme heute einmal nicht um ein Excel-Problem mit euch zu lösen, sondern heute brauche ich einmal eure Meinung.
Ich habe einen Dienstplan für 150 Kollegen und 20 Praktikanten in Excel gefertigt. Nun ist die Datei im Leerzustand über 12MB groß. Ausgefüllt kommt sie über 13MB. Die Datei liegt auf dem Server und alle müssen die Datei beim herunterladen vom Server holen. Dies dauert seine Zeit und einigen ist dies zu lang.

  1. Wie kann ich die Datei verkleinern?

  2. Der Plan funktioniert ausschließlich mit hinterlegten Formeln, weil ich leider kein VBA kann. Wenn der Plan ausschließlich mit Makros geschrieben wär, würde die Größe der Gesamtdatei kleiner?

  3. Wäre vielleicht ein anderes Programm relevant für die Datei? (z. B. Access 2007)

Ich selbst habe Microsoft Office 2007 komplett.
Ich bedanke mich im Voraus.
MfG Bernd

Moin Bernd,

nur mal so am Rande gefragt: Brauch alle unbedingt das Excel-Monster oder reicht denen das, was denen da angezeigt wird?

Dann wär’s furchtbar einfach regelmässig ein PDF daraus zu schießen … automatisch Dein erster VBA-Skript…

LG
Ce

Wir sind 170 Kollegen und es können bis zu 20 Praktikanten dazukommen. Wir arbeiten in einem 5-Schicht-Rhythmus und haben auch noch die Springer. Also kann mann sagen 6 Schichten die verplant werden müssen.
Jeder hat bis jetzt seinen pers. Dienstplan (Tabellenblatt), der dann zusammengeführt wird.
Dabei muss jeder ein Teil mit machen. Es kann dann nicht von einem alles eingearbeitet werden.
Bernd
PS: Oder habe ich dich falsch verstenden?

Hallo Bernd,

Ich habe einen Dienstplan für 150 Kollegen und 20 Praktikanten
in Excel gefertigt. Nun ist die Datei im Leerzustand über 12MB
groß. Ausgefüllt kommt sie über 13MB.

ich runde mal auf 200. Ist es da so, da ist quasi ein Blatt
was den Gesamtdienstplan darstellt und jeder hat sein eigenes Blatt
wo er seine Daten einträgt?
Brauch er dazu die anderen 199 Blätter?

  1. Wie kann ich die Datei verkleinern?

Verdächtig sind immer viele Schriftarten, Farbenspiele die kein
Mensch braucht.
Wenn deine Formeln kopierbar sind kannste ihnen Namen verpassen,
dann sparste pro zelle den Byteanzahlunterschied Formel–namen.

Aber 12 MB ist ein Haufen Holz und es gibt noch andere Gründe
für Größe.

  1. Der Plan funktioniert ausschließlich mit hinterlegten
    Formeln, weil ich leider kein VBA kann. Wenn der Plan
    ausschließlich mit Makros geschrieben wär, würde die Größe der
    Gesamtdatei kleiner?

Ja. um die Byteanzahl der ersetzten Formeln.

  1. Wäre vielleicht ein anderes Programm relevant für die
    Datei? (z. B. Access 2007)

K.A., kenne Access nicht.

Gruß
Reinhard

Personalsoftware?
Hallo Bernd,

auch wenn Du sicherlich viel Mühe in Dein Excel gesteckt hast, bleibt das Kernproblem, dass Excel für diese Aufgabenstellung eher ungeeignet ist.

Denn im Grunde braucht jeder Mitarbeiter ja nur allein seine Daten. Mehr ist nicht nur unnötig, sondern auch ein echtes Datenschutzproblem.

Die eigentliche Herausforderung beim Thema ist nicht die Vorort-Erfassung oder die Bewertung der Eingaben sondern der konkurrierende Zugriff, der ganze Workflow und das Tracking, wer seine Eingaben schon getan hat oder ändert. Dafür ist Excel aber gar nicht gedacht.
Das mit der Dateigröße erscheint mit nur als „Spitze des Eisbergs“.

Mir ist dabei nicht klar geworden, um was es bei der Aufgabenstellung geht: Personaleinsatzplanung (Mittelfristige Festlegung eines Plans unter Berücksichtigung von geplanten Anwesenheiten und Bedarfen), Personaldisposition (Kurzfristige Feinzuordnung), Personaleinsatzerfassung oder -bewertung.

Bei der von Dir genannten Mitarbeiterzahl wird normalerweise dafür schon professionelle Personalsoftware eingesetzt.
Ich weiß aber, wie schwierig das manchmal im Mittelstand ist, wenn die Entscheider den Eindruck haben: „Das kann man doch ganz einfach in Excel machen.“ (Anm.: gemeint war „billig“)

Ciao, Allesquatsch

Hallo, ich habe einmal eine ältere Datei hochgeladen und eine kurze Erläuterung dazu. Somit kann man dann nachvollziehen, von was ich rede.
Die Schutzmakros sind offen und ich habe sie nicht mitgeschickt.
Ich suche vom Prinzip eine Möglichkeit, wie die Datei schneller geöffnet bekomme. Ein jeder Kollege hat ein Arbeitsblatt für die Eintragungen seiner Dienste. Zuvor bereitet der Planer aber den Plan mit bereits anstehenden Aufgaben auf. Somit ist der Plan in seiner Gesamtheit zusehen.

Hier die Links:
http://www.file-upload.net/download-6642140/Bedarfor…

http://www.file-upload.net/download-6642151/BSM-Kurz…

Gruß Bernd

Hallo Bernd,

Hallo, ich habe einmal eine ältere Datei hochgeladen und eine
kurze Erläuterung dazu. Somit kann man dann nachvollziehen,
von was ich rede.

sehr schön.

Die Schutzmakros sind offen
und ich habe sie nicht mitgeschickt.

Was genau ist für dich „offen“? Auskommentiert?
Wenn du die Codes nicht zeigst so ist das dann dein Risiko wenn
die sich mit evtl. meinen Codes in die Haare kriegen.

Ich suche vom Prinzip eine Möglichkeit, wie die Datei
schneller geöffnet bekomme. Ein jeder Kollege hat ein
Arbeitsblatt für die Eintragungen seiner Dienste. Zuvor
bereitet der Planer aber den Plan mit bereits anstehenden
Aufgaben auf. Somit ist der Plan in seiner Gesamtheit zusehen.

http://www.file-upload.net/download-6642140/Bedarfor…

http://www.file-upload.net/download-6642151/BSM-Kurz…

Okay, ich schaue sie mir an.

Gruß
Reinhard

Hallo Reinhard, Nein die Makros die ich nicht mitgegeben habe liegen außerhalb der Mappe, damit nicht jeder sie bedienen kann. Es ist einmal eins zum schützen:

Private Sub CommandButton1_Click()
Sub AlleSchuetzen()
Dim Blatt As Worksheet
For Each Blatt In ActiveWorkbook.Worksheets
Blatt.Protect („XXX“)
Next Blatt
End Sub

Private Sub CommandButton2_Click()
Sub AlleFreilegen()
Dim Blatt As Worksheet
For Each Blatt In ActiveWorkbook.Worksheets
Blatt.Unprotect („XXX“)
Next Blatt
End Sub

und Redaktionsschluss:

Sub Rück_Redaktionsschluss()’
’ Rück_Redaktionsschluss Makro
’ öffnet gesperrte Zellen in Planungsblättern’
Sheets(„40“).Select
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets(Array(„1“, „2“, „3“, „4“, „5“, „6“, „7“, „8“, „9“, „10“, „11“, „12“, „13“, „14“, „15“, _
„16“, „17“, „18“, „19“, „20“, „21“, „22“, „23“, „24“, „40“)).Select
Sheets(„40“).Activate
Sheets(Array(„25“, „26“, „27“, „28“, „29“, „30“, „31“, „32“, „33“, „34“, „35“, „36“, „37“, _
„38“, „39“, „40“)).Select Replace _
:=False
Range(„B18:AF20“).Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.ScrollWorkbookTabs Sheets:=80
Sheets(„Dienstplan“).Select
End Sub

[Das ist eine kurze Variante und schließt nur 40 Arbeitsblätter]

Weiter ist es nichts.
Gruß Bernd

Hallo Bernd,

  1. Wie kann ich die Datei verkleinern?

da sehe ich wenig bis keinen Spielraum.

  1. Der Plan funktioniert ausschließlich mit hinterlegten
    Formeln, weil ich leider kein VBA kann. Wenn der Plan
    ausschließlich mit Makros geschrieben wär, würde die Größe der
    Gesamtdatei kleiner?

VBA ist keine Zauberei. Alle Formeln zu löschen und die Berechnung in VBA zu machen, würde zwar einiges an Dateigröße sparen, der Aufwand das zu programmieren wäre aber riesig und die Funktionsweise der gesamten Datei kaum mehr nachzuvollziehen.

  1. Wäre vielleicht ein anderes Programm relevant für die
    Datei? (z. B. Access 2007)

Access ist nur eine Alternative, wenn du dich grundsätzlich mit Datenbanken auskennst und/oder jemanden hast der dir das programmiert. Das Design der Tabellen, Abfragen und Prozeduren ist eine Sache. Die Gestaltung von benutzerfreundlichen (und idiotensichereren) Benutzerschnittstellen nochmal eine ganz andere. Beachte, dass Access auch nicht den Königsweg darstellt. Ideal wäre die Nutzung einer richtigen Datenbank wie MySQL oder SQLServer. Access fungiert dann, wenn überhaupt, höchstens noch als Frontend.

Falls eine professionelle Lösung ausscheidet weil du das nicht selbst machen kannst bzw. weil kein Geld für die Programmierung da ist, bleib dir nur die Excel-Lösung zu modifiziern. Um VBA wirst du dabei nicht herum kommen.

Mein Ansatz wäre:
Die Blätter 1 bis 150 werden als Einzeldateien ausgelagert. Dort können die Leute ihre Daten eintragen und die Datei anschließend entweder an einem speziellen Ort abspeichern oder dir zumailen. Deine ursprüngliche Datei liest dann eine nach der anderen Einzeldatei aus und berechnet den Rest wie gehabt. (Das funktioniert nur, wenn die Leute unabhängig von den Eintragungen anderer ihre eigenen Eintragungen machen sollen. Falls die Datei auch noch als interaktives Planungstool für jede Person dient, kannst du meine Idee vergessen. Dann bleibt nur noch die zentrale Datenbank.)

Egal was du machen wirst. Es bedeutet auf jeden Fall tagelange, wenn nicht sogar wochenlange Arbeit. Viel Erfolg!

MfG
Stephan

Hallo Stephan,
danke für deine Antwort. Durch das Forum sind mir die Augen geöffnet worden und ich werde wohl es so lassen wie es ist. Ich warte noch einmal die Antwort von Reinhard ab. Ich weiß er ist ein Zauberer, da er mir auch schon geholfen hat.
Ansonsten setze ich mich mit meinem A…. drauf und lass die anderen Gaggern. Sollen die doch mal was nebenbei in Heimarbeit machen.
Danke Bernd

Ich warte noch einmal die Antwort von Reinhard ab. Ich weiß er
ist ein Zauberer, da er mir auch schon geholfen hat.

Hallo Bernd,

schön daß du schon vorbereitet bist, denn von mir kommt im Rahmen
des Forums keine Lösung.
Ich sehe zwar Möglichkeiten, viel mit Vba aber nicht nur, auch am Gesamtaufbau könnte man was ändern aber das funktioniert nur
gemeinsam.

Ohne das mal paar Tipps, k.A. ob das viel bringt Bytemäßig.
Gib den Formeln Namen, dann stehen in den Zellen die Namen, das spart
Bytes.

Sind alle Farben/Rahmen da notwendig?
Und, hast du die Mappe „wachsen“ gesehen, wuchs sie regelmäßig
und gleichmäßig an? Oder war sie auf einmal unerklärlich viel größer?

Nicht ungewöhnlich daß dies geschieht.
Dann kenne ich dazu nur manuelle „Rettung“. In Vba fiel mir noch nix
ein, hat was mit Usedrange, specialcells(xllastcell) usw. zu tun.

Konkret bedeutet das, du nimmst eine leere Mappe. Erzeugst da alle
Tabellenblätter deiner Mappe. Dann markierst du Blatt für Blatt
jeweils den Zellbereich den du als benutzten bereich ansiehst
und fügst ihn in der neuen Mappe ein.

Keine Panik, so heftig wird das nicht :smile:
Ich, andere, können dir per Code eine neue Mappe anlegen die
vom Namen her alle Blätter deiner Mappe beinhaltet.

Wenn, wie ich glaube, Blatt 1 - 150 identisch sind bis auf die
Nummer, dito für 1. - 31.
kann man diese Blätter in der neuen Mappe auch per Vba erzeugen.

Gruß
Reinhard

Moin, Moin
Hallo Reinhard,
das Gerüst dieser Datei wurde stetig ausgebaut. Ursprünglich war die Datei mit wenigen Tabellenblättern und für 50 Koll. entstanden. Die damalige Größe lag zwischen drei und vier MB.
Da dieses Ding den Leuten gefiel wurde es immer weiter ausgebaut. Jetzt verwaltet es die ges. Abteilung. Die Datei funktioniert auch und spuckt auch dass aus was benötigt wird.

Für mich stellt sich nun die eine Frage:
Lohnt sich der Neubeginn?
Erreiche ich dabei was ich will?

Ich will in eigentlichen nur, dass die Datei schneller läuft.

Ich habe keine Angst vor der Arbeit die das Neuanlegen machen würde und untern Strich wird man ja nicht dümmer. Der Winter steht vor der Tür und da kann der Rechner schon wieder mal öfters eingeschalte werden. 
Ich habe mich jetzt erst einmal mit Literatur beschäftigt und mich mit den VBA beschäftigen zu können. Denn seit ich mit Excel umgehe habe ich begriffen, nur etwas kopieren ohne es zu verstehen nützt mir nicht. Es muss nachvollziehbar sein.

Wenn wir das Projekt angehen wollen, dabei ist der große Hilferuf versteckt, wäre es schön wenn du mir sagst was als erstes getan werden soll. Meine Frage wäre gleich ob du mein/unser Projektleiter werden könntest. Du würdest sagen was läuft und ich setze es um. Das wäre Klasse.
Bis dahin erst einmal
Gruß
Bernd

Hallo Bernd,

das Gerüst dieser Datei wurde stetig ausgebaut. Ursprünglich
war die Datei mit wenigen Tabellenblättern und für 50 Koll.
entstanden. Die damalige Größe lag zwischen drei und vier MB.
Da dieses Ding den Leuten gefiel wurde es immer weiter
ausgebaut. Jetzt verwaltet es die ges. Abteilung. Die Datei
funktioniert auch und spuckt auch dass aus was benötigt wird.

50 oder 150 Benutzer ist bei der Mappe die du mir zeigest nicht
so das Größenproblem. Im Access-Brett habe ich ja geschrieben
daß wenn man diese 150 Blätter löscht und die komischen 31 anderen,
dies die Mappe/datei nur um 2 MB kleiner macht auf 9,9 MB.

Für mich stellt sich nun die eine Frage:
Lohnt sich der Neubeginn?
Erreiche ich dabei was ich will?

Ich sehe da zwei Arten des Neubeginns. ZUm einen das was ich beschrieb
manuell die tatsächlichen benutzten Bereiche in eine jungfräuliche
Mappe reinkopieren. Damit biste Altlasten, unnötige Bytes in der
Altmappe los. Was das brint siehste erst hinterher.

Die andere Art ist, die Blattstruktur in der Mappe umkrempeln.
Ich sehe keinerlei Notwendigkeit für die 150 Blätter.
Langt doch wohl, du hast da ein Blatt wo du z.B. 12 auswählst/eingibst
und dir werden die Daten des 12-ten Blattes angezeigt.

Oder dazu noch automatische Überprüfung welcher Benutzer grad die
Mappe gestartet hat, dann kriegt er die Daten seines Blattes gezeigt
beim Start.
Das geht nur mit aktivierten Makros. Dazu zwingen kann man den User
schon per Vba, entweder er aktiviert Makros, wenn nicht kriegt er
keinerlei Datenblätter zu sehen und kann ohne Vba mit
Excel-Bordmitteln die nicht einblenden.

Wenn wir das Projekt angehen wollen, dabei ist der große
Hilferuf versteckt, wäre es schön wenn du mir sagst was als
erstes getan werden soll. Meine Frage wäre gleich ob du
mein/unser Projektleiter werden könntest. Du würdest sagen was
läuft und ich setze es um. Das wäre Klasse.

Sorry, so wird das nix :frowning: Das klappt wenn du im Handwerksbrett
anfragst wenn du eine Altbauwand renovieren willst.
Dann kann man dir theoret. eine Step by Step Anleitung basteln.

In dem Fall geht das nicht.
Mal ein konkretes Beispiel. Als Projektleiter *gg* sage ich dir
versuche zuerstmal hinzukriegen daß durch Auswahl einer Nummer
in einem Blatt die entsprechenden Daten aus einem anderen Blatt
angezeigt werden.

Zum Testen nimm eine leere Mappe, in Tab2 schreibste fortlaufend
die Zahlen 1-5 aber mit k.A. 10 Zeilen Abstand.
In B schreibst pro Zahl in A paar Zellen mit belibigen Daten voll.
Jetzt versuche das so zu codieren daß bei Auswahl einer Zahl
in Tab1 die Daten dieser Zahl aus Tab2 erscheinen.

Ganz ehrlich, meinste du kriegst das hin?
Und das ist ja nur ein Punkt unter vielen der gelöst werden muß.
Für lau wirste da keinen Projektleiter finden.

Tipp: vergess Bücher, Kurse. Lese in Excelforen mit und versuche
für dich Anfragen zu beantworten.
Spielt nicht die geringste Rolle daß du das (anfangs) kaum kannst.
Wichtig ist daß du all dein Wissen reinschmeißt um das lösen.
Dann lese die Lösung (-en) und studiere die und versuche die
zu kapieren.

So habe ich Excel/Vba erlernt. Sicher, anfangs sehr lange
sehr freudlos ohne „Erfolge“. Ist ein harter steiniger Weg.
Aber irgendwann, Monate später, kam der Tag wo ICH eine
Forumsanfrage beantworten konnte. Das hat mich äußerst erfreut :smile:

So gesehen, frage in einigen Monaten wieder an wenn du die
Vba-Aufgabe die ich dir gezeigt habe souverän lösen kannst.
Dann ist ein Punkt gelöst, für die anderen Punkte kriegste dann
neue „Aufträge“

Gruß
Reinhard

Hallo Reinhard,
ich weiß, dass meine Anfrage vermessen war. Aber Fragen kostet ja nichts. Ich werden mich bemühen die Aufgabe zu lösen, obwohl ich noch keine Vorstellung von ihr habe.
Aber ich werde es versuchen.
Bis dahin Danke.
Gruß Bernd